これが起こるべきかどうかを述べる多くのドキュメントを見つけることができません:
- 一部のスレッドが TCP (または他のストリーム) ソケットを開きます
- スレッド 1 はブロッキング recv() を開始します
- スレッド 2 は SHUT_RDWR (または SHUT_RD だと思います) を使用してソケットで shutdown() を呼び出します
- スレッド 1 は、ブロッキング呼び出しから「目覚め」、相手がソケットを閉じた場合と同様に、0 を返します。
この動作は、最新の Linux および FreeBSD システムで発生します。私は他のものでそれをテストしていません。
ここの Microsoft MSDN ヘルプ ページに関するコメント: http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspxは、この動作が "責任がある" ことを示唆しています。ウィンドウズ; これは「現在は当てはまらない」とも述べていますが、これは時代遅れである可能性があります。
この動作はどこかに指定されていますか? 私はそれを頼ることができますか?