我说的是,当另一方关闭套接字时,Socket.Receive会抛出一个包含连接重置消息的SocketException。如果另一方调用Socket.Shutdown(Shutdown.Send),它将返回0字节。
这是我的测试已经确认但文档没有明确说明。我可能只是因为其他原因而读取0字节。
答案 0 :(得分:0)
我的测试表明你是对的。这里有一些来自MSDN: “如果远程主机使用Shutdown方法关闭Socket连接,并且已收到所有可用数据,则Receive方法将立即完成并返回零字节。” http://msdn.microsoft.com/en-us/library/8s4y8aff.aspx