Python(socketserver并发聊天)

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。

猜你喜欢

转载自www.cnblogs.com/112358nizhipeng/p/9895581.html