Я пытаюсь использовать asyncio для управления соединениями в сетевом приложении p2p.Я пытаюсь поддерживать большое количество (~ 300) соединений, используя потоки asyncio.
Я использую 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
Возможно ли иметь несколькоподключения к разным парам ip / port клиента одновременно с использованием потоков asyncio?Есть ли другая асинхронная библиотека, которая больше подходит для этого?