day27
一个server与多个client聊天。
server.py
1 import socketserver 2 3 class MyServer(socketserver.BaseRequestHandler): 4 5 def handle(self):#重写覆盖父类中的方法 6 print ("服务端启动...") 7 while True: 8 conn = self.request 9 print (self.client_address) 10 while True: 11 12 client_data=conn.recv(1024) 13 14 print (str(client_data,"utf8")) 15 print ("waiting...") 16 server_response=input(">>>") 17 conn.sendall(bytes(server_response,"utf8")) 18 # conn.sendall(client_data) 19 20 conn.close() 21 # print self.request,self.client_address,self.server 22 23 24 if __name__ == '__main__': 25 #实现并发效果 26 server = socketserver.ThreadingTCPServer(('127.0.0.1',8098),MyServer)#多线程tcp服务类 27 server.serve_forever()
client.py
import socket ip_port = ('127.0.0.1',8098) sk = socket.socket() sk.connect(ip_port) print ("客户端启动:") while True: inp = input('>>>') sk.sendall(bytes(inp,"utf8")) if inp == 'exit': break server_response=sk.recv(1024) print (str(server_response,"utf8")) sk.close()
可以对应不同的client进行聊天。
listen默认有5个可以排队,所以最多5个client。