使用UDP传输数据时,是否需要将消息长度作为消息的一部分包含在内?

时间:2012-11-20 18:37:53

标签: .net udp udpclient

我有一个客户正在寻求将通过线路传输的字节数减少到绝对最小值。创建udpClient类并调用receive方法时,将返回一个字节数组。目前我正在使用receiveBytes.Length来获取消息中的字节数。

但是,在有多个消息进入的负载很重的情况下,有人建议这还不够,证明需要将数据包长度作为消息的前2个字节发送。

我可以依赖完整数据包还是不接收数据包,因此依赖于Length属性?

修改

感谢所有评论。

使用UDP是TCP的补充。当我们需要实现序列和保证时使用TCP。 UDP将用于任何顺序但不重要的数据。是的,我知道这意味着添加OTT加密。我的问题是,我只能依靠完整的数据包到达。

1 个答案:

答案 0 :(得分:1)

每个UDP数据包都是独立发送的,不保证任何其他数据包都会到达。

你(收到一个人)怎么知道等待另一个,如果它从未出现过你能做什么?很长的说法,你会收到已发送的信息或根本没有。