如何在Python 3.6中检查客户端是否突然断开连接。这是我的代码,
componentDidUpdate()
如果客户端正常断开连接,则此方法有效,它正在正确关闭连接。如何检查客户端是否突然断开连接?
答案 0 :(得分:0)
您可以在开始时尝试向客户端发送数据包,并使用它查看是否已连接到客户端
while True:
try:
string = "Are you up?"
s.send(string.encode())
except:
print("Can't seem to be connected with the client")
# here you can process the expection
# rest of the code
在您的情况下,您已经在使用非阻塞套接字conn.setblocking(0)
,因此,即使客户端结束了会话并且您没有收到任何数据temp
,变量也将不包含任何内容,因此您会从循环中中断(如果客户端在循环中发送数据,则表示客户端是
或者您也可以设置超时以响应客户端的响应
s.settimeout(30) # wait for the response of the client 30 seconds max
在recv行中,您可以执行以下操作:
try:
temp = conn.recv(1024)
except socket.timeout:
print('Client is not sending anything')