2013-05-08 124 views
-2

當通過套接字發送數據時,我發現單個郵件可以被分割,這樣我就可以收到不同大小的包,然後發送。這很好,很容易處理。tcp socket數據亂序?

但是,我有點不確定這些消息是否也可能無序到達?是一個像TCP一樣的流式套接字,所以這個命令是可以保證的?我試圖通過谷歌找到這方面的一些信息,但到目前爲止我還沒有找到任何東西。 如果軟件包可能無序到達,我也想知道如何處理它,如果我不能依賴於特定的大小或順序?

+3

http://en.wikipedia.org/wiki/Transmission_Control_Protocol - 「TCP提供可靠的,**排序的**,[...]」 – Mat 2013-05-08 09:20:05

+1

是的,TCP重排無序到達的數據包,提供流接口。 – 2013-05-08 09:21:56

+0

要明確,TCP會爲您處理。如果你使用UDP,你可能會收到錯誤消息,丟失消息等。 – jcoder 2013-05-08 09:36:15

回答

3

您的應用程序將獲得訂購數據流。

讓內核去做關於丟包,排序等的東西 - 它超出了你的業務範圍。

+0

謝謝!很明顯,我使用了錯誤的搜索短語。 :) – Devolus 2013-05-08 09:26:12