socket模块tcp通过多进程并发连接多个客户端

#server端
import
socket from multiprocessing import Process def talk(conn): while True: msg = conn.recv(1024).decode('utf-8') ret = msg.upper().encode('utf-8') conn.send(ret) conn.close() if __name__ =='__main__': sk = socket.socket() sk.bind(('127.0.0.1',9001)) sk.listen() while True: conn,_ = sk.accept() Process(target=talk,args=(conn,)).start() sk.close()

#clent端
import time
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',9001))
while True:
    sk.send(b'hello')
    msg = sk.recv(1024).decode('utf-8')
    print(msg)
    time.sleep(0.5)

sk.close()

 

 

通过开启子进程,异步不阻塞。

类下通过socketserver模块进行tcp多客户端通信:

#server端
import
time import socketserver class Myserver(socketserver.BaseRequestHandler): def handle(self): conn = self.request while True: try: content = conn.recv(1024).decode('utf-8') conn.send(content.upper().encode('utf-8')) time.sleep(0.5) except ConnectionError: break server = socketserver.ThreadingTCPServer(('127.0.0.1',9001),Myserver) server.serve_forever()

client端同上.

 

posted @ 2021-01-06 17:10  JiaMii  阅读(230)  评论(0)    收藏  举报