来自http://docs.python.org/2/howto/sockets.html
如果套接字发送或接收处理 0 个字节后返回,则连接已断开。
另一方面,如果 TCP 连接的远程端关闭(或被杀死),并且随后调用了 socket.send(),则可以看到以下 socket.error 异常
socket.error: [Errno 104] 连接被对等方重置
现在我的问题是,“连接已断开”和“有什么区别?对等连接重置。“连接已断开”的确切含义 == socket.send() 返回零。对我来说,即使是一个字符也不能发送,就像 socket.error 异常一样糟糕。无论导致 socket.send 返回零的事件,理想情况下都应该引发 socket.error 异常,这样应用程序就不必处理两个不同的事情(异常和返回值为零)。