【发布时间】:2012-06-11 17:04:30
【问题描述】:
我找不到太多文档来说明这是否应该发生:
- 某个线程打开一个 TCP(或其他流)套接字
- 线程 1 启动阻塞式 recv()
- 线程 2 使用 SHUT_RDWR(或者我认为是 SHUT_RD)在套接字上调用 shutdown()
- 线程 1 现在从其阻塞调用中“唤醒”,并返回零,就像另一方关闭其套接字时一样。
这种行为出现在现代 Linux 和 FreeBSD 系统上。我没有和其他人测试过。
此处对 Microsoft MSDN 帮助页面的评论:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx 表明此行为在 Windows 中是“负责任的”;它还指出“目前不是这种情况”,但这可能已经过时了。
此行为是否在任何地方指定?我可以依赖它吗?
【问题讨论】:
标签: windows linux sockets freebsd