我目前有一个结构如下的程序:
set_up_everthing()
while True:
if new_client_ready():
connect_new_client()
for client in clients:
if client.is_ready():
get_input_from(client)
update_program_state_based_on_input()
for client in clients:
if client.is_ready():
send_output_to(client)
clean_up()
网络 I/O 目前使用套接字和选择,但我想重写它以使用 asyncio 库。我想我了解如何制作一个简单的 asyncio 程序,这个想法似乎是当你想做一些 I/O 时,你yield from
有一个函数来做它,所以当主循环得到一个新的客户端时,它会做yield from accept_client()
,当该客户端接收到的信息yield from read_information()
,依此类推。但是,我不知道如何将它与程序的其他部分结合起来。