Socket“服务器-客户端”模型的多线程并发实现效果的大体思路是:首先,在Server端建立“链接循环”,每一个链接都开启一个“线程”,使得每一个Client端都能通过已经建立好的线程来同时与Server通信,代码如下:
# -*- coding: utf-8 -*- # -*- Author: WangHW -*- import socket from threading import Thread def Communication(conn): # 通信循环 while 1: try: data = conn.recv(1024) if not data: break print('Client Data:', data.decode('utf-8')) conn.send(data.upper()) except ConnectionResetError: break def Server(ip,post): whw_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) whw_server.bind((ip,post)) whw_server.listen(5) # 链接循环 while 1: conn, addr = whw_server.accept() #创建线程 t = Thread(target=Communication,args=(conn,)) t.start() if __name__ == '__main__': #主线程干Server的工作 Server('127.0.0.1',9000)