我正在尝试使用asyncio在P2P网络应用程序中管理连接。我正在尝试使用Asyncio流保持大量(〜300(连接。
我正在使用python3.6,它每次都在asyncio.open_connection(...(上悬挂。
async def example():
reader, writer = await asyncio.open_connection(ip, port)
writer.write(handshake)
await writer.drain()
response = await reader.read(RESP_SIZE)
errcode, results = await worker(reader, writer, workerdata)
# This is the line it hangs and times out on
reader2, writer2 = await asyncio.open_connection(ip2, port2)
# Second, identical handshake sequence here
writer2.write(handshake)
await writer2.drain()
response = await reader2.read(RESP_SIZE)
errcode, results = await worker(reader2, writer2, workerdata2)
def main():
loop = asyncio.get_event_loop()
loop.run_until_complete(example())
loop.close()
一个微不足道的示例适用于单个连接,但是一旦我尝试执行握手/打开第二个连接,我就会收到
TimeoutError: [Errno 110] Connect call failed
是否可以使用asyncio流同时与不同的客户端IP/端口对有多个连接?是否有不同的异步库?
它挂起,因为工人的僵局在等待一些外国消息。建议,始终使用超时。