我正在用python编写一个使用asyncio的程序,其中客户端连接到服务器,它们交换一些消息,服务器关闭连接。 我还需要实现一种重试机制,在这种机制中,如果服务器停机,客户端将继续尝试每5秒重新连接一次
作为python中的新手,通常使用asyncio概念,我需要帮助理解如何实现它。 下面是我的代码片段,我在这里启动与服务器的连接,并在服务器端套接字关闭时处理它
async def main():
# Get a reference to the event loop as we plan to use
# low-level APIs.
format = "%(asctime)s: %(message)s"
logging.basicConfig(format=format, level=logging.INFO,
datefmt="%H:%M:%S")
executor1 = concurrent.futures.ThreadPoolExecutor(max_workers=2)
future1 = executor1.submit(init_thread)
loop = asyncio.get_running_loop()
on_con_lost = loop.create_future()
message = future1.result()
message = struct.pack(">I", len(message)) + bytes(message, "utf-8")
transport, protocol = await loop.create_connection(
lambda: EchoClientProtocol(message, on_con_lost),
'127.0.0.1', 9000)
# Wait until the protocol signals that the connection
# is lost and close the transport.
try:
await on_con_lost
finally:
transport.close()
asyncio.run(main())
目前没有回答
相关问题 更多 >
编程相关推荐