使用python asyncio和socket实现异步聊天时出现问题

使用python asyncio和socket实现异步聊天时出现问题,python,sockets,server,client,python-asyncio,Python,Sockets,Server,Client,Python Asyncio,我正在尝试实现与多个用户的异步聊天,但它只能与一个用户一起工作。我的服务器忽略了其他用户的连接,我不明白为什么。此外,当第一个用户断开连接时,服务器会自动关闭。我的代码: 导入异步IO 导入套接字 类服务器: “”“服务器的类”“” 定义初始化(self,ip:str,port:int): self.ip=ip self.port=端口 self.all_客户端=[] self.main\u loop=asyncio.get\u event\u loop() self.server=socket

我正在尝试实现与多个用户的异步聊天,但它只能与一个用户一起工作。我的服务器忽略了其他用户的连接,我不明白为什么。此外,当第一个用户断开连接时,服务器会自动关闭。我的代码:

导入异步IO
导入套接字
类服务器:
“”“服务器的类”“”
定义初始化(self,ip:str,port:int):
self.ip=ip
self.port=端口
self.all_客户端=[]
self.main\u loop=asyncio.get\u event\u loop()
self.server=socket.socket(socket.AF\u INET、socket.SOCK\u流)
self.server.setsockopt(socket.SOL_socket,socket.SO_REUSEADDR,1)
self.server.bind((str(self.ip)、int(self.port)))
#self.server.setblocking(False)
self.server.listen(5)
#self.main\u loop.run\u forever()
self.main\u循环。运行\u直到完成(self.start())
#self.accept_客户机()
异步def启动(自)->无:
等待self.main\u循环。创建\u任务(self.accept\u clients())
异步def接受_客户端(自身)->无:
“”“接受所有客户端请求”“”
尽管如此:
client\u socket,client\u address=wait self.main\u loop.sock\u accept(self.server)
self.all\u clients.append(客户端\u套接字)
打印(f'{client_address}connected')
等待self.main\u循环。创建任务(self.handle\u客户端(客户端\u套接字))
#等待self.handle\u客户端(客户端\u套接字)
异步def发送_消息(自身,消息:字节):
“”“将客户端的消息发送给其他客户端”“”
对于self.all_客户端中的客户端:
等待self.main\u loop.sock\u sendall(客户端,消息)
异步def handle_客户端(self,client_socket:socket.socket)->无:
“”“侦听客户端的消息”“”
尽管如此:
message=wait self.main\u loop.sock\u recv(客户端\u套接字,1024)
如果没有,请发送消息:
打破
等待自我。发送消息(消息)
打印(所有客户端的自打印)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
服务器=服务器('127.0.0.1',8000)

您是否尝试过使用
主循环。永远运行()
?我认为,运行
run\u直到完成
是一次成功连接后关闭的原因。