使用套接字时,如何让客户端处理断开的连接?当我在recv()
中拥有客户端而我退出服务器端而没有发送任何内容时,客户端仍然卡在recv()
中。如何在连接断开时结束它?
答案 0 :(得分:0)
首先,尝试将套接字设置为非阻塞模式(默认为阻止模式):
mysock.setblocking(0)
现在,如果您从套接字读取或写入,并且连接在另一端终止,我相信在没有收到数据时它应该抛出socket.error
。
示例:强>
try:
data = mysock.recv(1024)
except socket.error:
# quit or something
点击socket.setblocking
和socket.settimeout
上的文档链接
https://docs.python.org/2/library/socket.html#socket.socket.setblocking