网络编程之实现server端并发聊天

时间:2021-01-04 20:03:40

程序如下:

 import socketserver
class MyServer(socketserver.BaseRequestHandler): #自己定义一个类,继承BaseRequestHandler类
def handle(self): #聊天的逻辑都在handle方法里
print('服务端已启动....')
while True:
conn = self.request #通过它拿到客户端的socket对象
while True:
client_data = conn.recv(1024)
print(str(client_data,'utf8'))
conn.sendall(client_data)
conn.close()
if __name__ == '__main__':
server = socketserver.ThreadingTCPServer(('127.0.0.1',8008),MyServer) #创建ThreadingTCPServer类的对象
server.serve_forever()
1.创建server对象的过程封装了:服务端socket对象的创建、绑定IP和端口、设置listen等工作
2.serve_forever()方法封装了:(1)启动了包含聊天逻辑的handle方法
(2)启动了创建多线程和多进程的程序,实现并发