好的,在任何人询问之前,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