python中socket多线程怎么让客户端与服务器连接
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"python中socket多线程怎么让客户端与服务器连接",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python中socket多线程怎
千家信息网最后更新 2026年10月31日python中socket多线程怎么让客户端与服务器连接
本篇内容主要讲解"python中socket多线程怎么让客户端与服务器连接",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python中socket多线程怎么让客户端与服务器连接"吧!
python socket多线程实现客户端与服务器连接,供大家参考,具体内容如下
server代码:
import jsonimport socketimport threadingimport timeimport structclass Server(): def __init__(self): self.g_conn_pool = {} # 连接池 # 记录客户端数量 self.num =0 # 服务器本地地址 self.address = ('0.0.0.0', 8000) # 初始化服务器 self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.server_socket.bind(self.address) self.server_socket.listen(128) def accept_client(self): """ 接收新连接 """ while True: client_socket, info = self.server_socket.accept() # 阻塞,等待客户端连接 print(client_socket,port) # 给每个客户端创建一个独立的线程进行管理 thread = threading.Thread(target=self.recv_msg, args=(client_socket,info)) thread.setDaemon(True) thread.start() def recv_msg(self,client,info): # 提示服务器开启成功 print('服务器已准备就绪!') client.sendall("connect server successfully!".encode(encoding='utf8')) # 持续接受客户端连接 while True: try: client.sendall(b'Success') while True: msg = client.recv(1024) msg_recv = msg.decode('utf-8') if not msg_recv: continue else: recv_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print('客户端 ' + recv_time + ':\n') print(' ' + msg_recv + '\n') except Exception as e: print('客户端断开连接...') exit(-1) break def start_new_thread(self): """启动新线程来接收信息""" thread = threading.Thread(target=self.accept_client, args=()) thread.setDaemon(True) thread.start()server服务器类,主要是监听以及接收客户端的信息。
#实例化一个Flask节点app = Flask(__name__)@app.route('/')def hello(): return 'hello'if __name__ == '__main__': #创建解析器 from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument('-p', '--port', default=5030, type=int, help='port to listen on') args = parser.parse_args() #获取端口号 port = args.port #实例化一个server类 并启动 py_server = Server() py_server.start_new_thread() #启动Flask节点 app.run(host='127.0.0.1',port=port)Client代码
class Client(): def __init__(self): #服务器ip与端口 self.server_address = ('127.0.0.1', 8000) self.num = 0 def recv_msg(self): print("正在连接服务器....") # 客户端连接服务器 while True: try: self.client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #连接服务器 self.client_socket.connect(self.server_address) num = self.num # 制作报头 header_dic = { 'filename': num } header_bytes = json.dumps(header_dic).encode('utf-8') self.client_socket.send(struct.pack('i', len(header_bytes))) self.client_socket.send(header_bytes) #接收信息 while True: msg_recv = self.client_socket.recv(1024).decode('gbk') print(msg_recv) if msg_recv == 'Success': print('客户端已与服务器成功建立连接...') elif not msg_recv: continue else: recv_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print( '服务器 ' + recv_time + ':\n') print(' ' + msg_recv + '\n') except: print('与服务器断开连接...') break def start_new_thread(self): """启动新线程来接收信息""" thread = threading.Thread(target=self.recv_msg, args=()) thread.setDaemon(True) thread.start() def main(): wf = Client() wf.start_new_thread() while True: a = input() wf.client_socket.send(a.encode('utf-8'))if __name__ == '__main__': main()以上为客户端程序的代码。
下面是运行的结果:
服务器端:

多个客户端:
代码实现还是蛮容易的,具体可以自行修改使用。
到此,相信大家对"python中socket多线程怎么让客户端与服务器连接"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
服务
服务器
客户
客户端
线程
代码
信息
内容
成功
实例
节点
学习
实用
更深
兴趣
口号
地址
多个
实用性
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
中智农互联网科技
上海喔噻互联网科技有限公司
互联网属科技
金融科技还是互联网
紫鲸互联网科技
艾特科技互联网
深圳卡尔迅互联网科技有限公司怎么样
上海电发互联网科技有限公司
广州优美互联网科技
哈尔滨新华互联网科技学院
汽车互联网创新科技园
中化能源互联网科技招聘
互联网科技扶贫时间
翼展科技 首家互联网医院
深圳市罗太互联网科技有限公司
区块链结合互联网科技
风投北京互联网科技
互联网与数字科技关系
每日互联网科技新闻
碳银互联网科技有限公司
长亮科技互联网金融
互联网时代科技改变生活
佳云科技和互联网广告
科技互联网大厂
福建科技产业互联网发展
35岁以上互联网科技行业
国产互联网科技公司
现代互联网科技公司
互联网 科技节活动 微视频大赛