我找不到太多文件说明这是否应该发生:
此行为出现在现代Linux和FreeBSD系统上。我还没有和其他人一起测试过。
此处对Microsoft MSDN帮助页面的评论:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx表明此行为在Windows中“负责”;它还指出“目前情况并非如此”,但这可能已经过时了。
此行为是否在任何地方指定?我能依靠吗?
答案 0 :(得分:1)
我认为你不能依赖它。 shutdown()initiales socket shutdown,但细节取决于具体情况。某些协议可能确实会立即关闭连接和套接字,这会唤醒在该套接字上休眠的进程。在其他情况下,关闭只是将协议状态机启动到行动中,但它需要一些时间才能达到唤醒任何人的意义。例如,已建立的TCP连接必须转换到几个状态,直到达到CLOSED状态。你最终会醒来,但你不能马上依赖它。