2016-02-15 49 views
1

我想写一个基于tcp套接字的服务器。在我读的python文档中,关闭套接字上的recv应该引发错误。但是,当客户端关闭套接字时,服务器仍然可以在此套接字上使用recv并获取空字符串。那么我可以假设,如果recv在阻塞套接字上返回空字符串,该连接是否断开或关闭?蟒蛇recv从封闭套接字

回答

0

您必须通过代码处理IOError异常。

except IOError as io_error: 
    if io_error.errno == <YOUR CODE>: 
     do something 

参见:https://docs.python.org/2/library/errno.html#module-errno 为获得验证码

+0

但是,当客户端程序崩溃或当客户端意外关闭套接字,没有任何预兆它不会引发任何异常。 'recv'然后在阻塞套接字上返回空字符串。 – fulaphex

+0

显示你的情况。请简单的客户端和服务器。我不明白你是什么意思 –

+0

http://pastebin.com/6e3z0aW1这里都是应用程序 – fulaphex