【发布时间】:2016-04-25 15:32:43
【问题描述】:
我正在编写带有客户端/服务器套接字的 Python 脚本。搜索替代解决方案后,我不确定我的解决方案是正确的还是最好的。
我已经阅读了这些帖子:
Python handling socket.error: [Errno 104] Connection reset by peer
Asyncio detecting disconnect hangs
他们的解决方案对我不起作用,但我有以下问题。我不确定它是否正确或干净。
try:
# See if client has disconnected.
try:
data = (await asyncio.wait_for(client_reader.readline(),timeout=0.01))
except ConnectionResetError, ConnectionAbortedError) as e:
break # Client disconnected
except TimeoutError:
pass # Client hasn't disconnect
如果我不为 ConnectionResetError 使用 except,我会收到一个错误,因为当我杀死客户端时数据会引发 connectionReset。
检测不规则的客户端断开是否是一个好的解决方案?
ps:感谢 Prune 清理了措辞和语法。
【问题讨论】:
标签: python sockets python-3.x python-asyncio