好的,在任何人詢問之前,TCP不是一個選項。處理零碎的UDP
所以,我通過UDP發送一些消息。每個消息在開始時都有一個4字節的長度字段。到目前爲止,我一直在使用這個字段來確定我是否有完整的消息。
但我想,如果我有兩個大的消息,足夠大,它們都是碎片是這樣的:
Message 1
Length 1 | Fragment 1-1 | Fragment 1-2 | Fragment 1-3
Message 2
Length 2 | Fragment 2-1 | Fragment 2-2 | Fragment 2-3
和我後,立即另送一個,就是他們有可能被傳遞交錯像這樣:
Length 1 | Length 2 | Fragment 1-1 | Fragment 2-1 | Fragment 1-2 | Fragment 2-2 | Fragment 1-3 | Fragment 2-3
如果是這樣,如果我沒有任何控制消息是如何分散的,我怎麼可能重新組裝這些?
編輯:另外..它剛剛發生在我身上,UDP可能不會碎片,我看到的「碎片」可能是通過調用具有固定大小緩衝區的.receive()
方法。所以也許這不是問題。任何人都可以確認如果UDP碎片?
這裏有兩種不同的碎片類型:UDP本身的碎片和其次如何將大型消息分成多個UDP數據包。 – 2013-04-25 23:54:09