我在 python 中为我的不间断服务器使用了 asyncio 并在我的 ServerClientProtocol 中实现了 connection_made 、 connection_lost 、 data_received 功能
我首先使用这个类,因为多次重复向套接字类发送数据,套接字被关闭,程序退出
第二,因为我认为它是异步的,并且同时并行回答多个即将到来的套接字,但事实并非如此。
我应该如何在一个异步线程和并行应答套接字中使用它?
这是我的代码:
class ServerClientProtocol(asyncio.Protocol):
def connection_made(self,transport):
self.transport = transport
def connection_lost(self,exc):
pass
def data_received(self, data):
server.server(self,data)
def main(*args):
loop = get_event_loop()
coro = loop.create_server(ServerClientProtocol, '127.0.0.1', 50008)
srv = loop.run_until_complete(coro)
loop.run_forever()
if __name__ == '__main__':
main()
server.server()
可能会阻止其他连接。如果这是一个长时间运行的调用,请尝试使用asyncio.start_server
(此处的示例),然后server.server()
使用await loop.run_in_executor(None, server.server, data)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句