小编Nos*_*sti的帖子

Python 3.5.1 - Asyncio - 检查套接字客户端是否已断开连接

我正在处理带有客户端/服务器套接字的 Python 脚本。在寻找替代解决方案后,我不确定我的解决方案是正确的还是最好的。

我已经阅读了这些帖子:

Python 处理 socket.error: [Errno 104] 对等方重置连接

异步检测断开挂起

他们的解决方案对我不起作用,但我有以下内容。我不确定它是否正确或干净。

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
Run Code Online (Sandbox Code Playgroud)

如果我除了ConnectionResetError之外不使用,我会收到一个错误,因为当我杀死客户端时数据会引发connectionReset

检测不规则的客户端断开连接是否是一个好的解决方案?

ps:感谢Prune清理措辞和语法。

python sockets python-3.x python-asyncio

5
推荐指数
1
解决办法
3688
查看次数

标签 统计

python ×1

python-3.x ×1

python-asyncio ×1

sockets ×1