python--socketserver
用socketserver,实现多人聊天的功能
import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): while True: msg=self.request.recv(1024).decode('utf-8') if msg=='q':break print(msg) info=input('%s>>>'%msg[:2]) self.request.send(info.encode('utf-8')) if __name__=='__main__': server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer) server.serve_forever() import socketserver class Myserver(socketserver.BaseRequestHandler): #建立一个类,继承socketserver.BaseRequestHandler def handle(self): #必须有这个方法名 ,因为源码中会调用这个方法 while True: #self.request 类似于conn msg=self.request.recv(1024).decode('utf-8') if msg=='q': break print(msg) cmd=input('%s>>'%msg[:2]) self.request.send(cmd.encode('utf-8')) if __name__=='__main__': server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),Myserver)#启动线程 server.serve_forever() #让线程一致运行 # 设置allow_reuse_address允许服务器重用地址 socketserver.TCPServer.allow_reuse_address = True # 创建一个server, 将服务地址绑定到127.0.0.1:9999 server = socketserver.ThreadingTCPServer(('127.0.0.1', 8080), Myserver) # 让server永远运行下去,除非强制停止程序 server.serve_forever()
import socket sk=socket.socket() sk.connect(('127.0.0.1',8080)) while True: msg=input('>>>') if msg=='q': sk.send(b'q') break sk.send(('美团:'+msg).encode('utf-8')) ret=sk.recv(1024).decode('utf-8') print(ret)