标签导航:

服务器如何检测远程客户端socket连接断开?

服务器如何侦测远程客户端Socket连接中断?

客户端关闭连接后,操作系统会自动执行TCP四次挥手流程,客户端能感知连接已断开。但服务器端不会自动收到通知。

为此,操作系统通常提供API查询Socket状态:

Python示例

Python标准库的recv()方法可通过返回值判断Socket是否关闭:

  • 成功接收数据,返回数据长度。
  • 对端有序关闭,无数据接收,返回0。
  • 发生错误,返回-1,并设置errno指示错误类型。