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)
Server

相关文章: