我尝试了以下代码但没有成功。基本上,我需要一种方法来检测客户端断开连接。我想避免一个讨厌的心跳类型系统。无论如何都要检测套接字何时不再打开(客户端已断开连接或已被断开/等)?
class ThreadedTCPRequestHandler(SocketServer.StreamRequestHandler):
def handle(self):
while True:
self.data = self.rfile.readline().strip()
if not self.data:
print 'Client closed connection'
break
我认为这样可行,但似乎没有(也尝试删除了strip())。有人有什么想法吗?
答案 0 :(得分:2)
通常,检测到客户端已“无声”不可用是不可能的。除非客户端以托管方式关闭连接(即执行FIN四向握手),否则服务器将不会检测到死客户端,除非它尝试与客户端通信并失败。