Python socket编程-进阶3
实现socket并发
使用 socketserver
客户端1
import socket tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp.connect(('localhost', 8081,)) while True: msg = input('客户端:') if not msg: continue tcp.send(msg.encode('utf-8')) msg = tcp.recv(1024) msg = msg.decode('utf-8') print(msg)
客户端2
import socket tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp.connect(('localhost', 8081,)) while True: msg = input('客户端:') if not msg: continue tcp.send(msg.encode('utf-8')) msg = tcp.recv(1024) msg = msg.decode('utf-8') print(msg)
服务端
import socketserver class MyServer(socketserver.BaseRequestHandler): """ self.request ==== conn self.client_address ==== address """ def handle(self): # 重写handle方法 while True: try: # 1. 接收消息 data = self.request.recv(1024) print(data.decode('utf-8')) # 2. 发送消息 self.request.sendall('successful'.encode('utf-8')) except Exception as e: print(e) break if __name__ == '__main__': tcp = socketserver.ThreadingTCPServer(('localhost', 8081,), MyServer) tcp.serve_forever()