2016-07-22 29 views
0

假設我對TCP使用winsock的shutdown(s, SD_RECEIVE)
關機後,對端發送數據包會發生什麼情況。使用SD_RECEIVE關閉套接字時,會發生什麼情況,但對等方是否發送數據包? (winsock)

根據MSDN,
https://msdn.microsoft.com/en-us/library/windows/desktop/ms740481.aspx

對於TCP套接字,如果仍有數據在插座等待接收的排隊,或數據到達隨後,連接復位,因爲數據不能交付給用戶。

「重置」是否意味着RST通過本地TCP發送到對等體?這又意味着,不會有優雅的關機?

回答

1

這就是它的意思,但只在Windows中。在UNIX上,數據包被確認並丟棄。在Linux上,它們被確認並緩衝,這最終會阻止發送者。

+0

謝謝, 你有更多閱讀的參考嗎? – EnDorphin

+0

這是我在編寫E.J.期間自己測試的結果。 Pitt,* Java中的基礎網絡,* Springer-Verlag。 – EJP

+0

很棒。感謝您的參考!我還有一個問題。在上面的報價中還提到「如果在套接字上還有數據排隊等待被接收」。由此,這是否意味着RST被髮送給它的同伴而不管同伴在做什麼? – EnDorphin

相關問題