Python 之socketserver模块实现多线程
一、服务端
import socketserver import time conn_poll = [] class MyServer(socketserver.BaseRequestHandler): def handle(self): print(‘... connected from {}‘.format(self.client_address)) conn_poll.append(self.client_address) while True: # request.recv 方法接收客户端发来的消息 data = self.request.recv(1024) if data == ‘exit‘: conn_poll.remove(self.client_address) # 发送exit给客户端断开连接 self.request.sendall(data.encode(‘utf-8‘)) break # request.sendall 方法发送消息给客户端 self.request.sendall(‘[{}] {}‘.format(time.ctime(), data.decode(‘utf-8‘)).encode(‘utf-8‘)) def finish(self): print(‘finish‘) if __name__ == ‘__main__‘: s = socketserver.ThreadingTCPServer((‘‘, 12306), MyServer) s.serve_forever()