在 Python 3.4/Asyncio 中,我使用的是 StreamReader/Writer。
要检测客户端断开连接,常用方法似乎是从客户端读取,如果那里什么都没有,则客户端断开连接。
while True:
data = (yield from asyncio.wait_for(client_reader.readline(),
timeout=1.0))
if not data: #client disconnected
break
但是,您很快就用完了从客户端标头中读取的行(它移动到每个循环的下一行),并且如果没有从客户端发送的其他行(在我的情况下,客户端不只是发送侦听),您点击暂停。
我想做的是只一遍又一遍地读取标题的第一行..或者甚至可能只是第一行的第一个字符,或者当它到达最后一行时不可能循环回到第一的。
完成这项任务的最佳/最优雅的方式是什么?3.4/Asyncio/StreamReader/Writer。(检测客户端断开连接)