接收UDP数据包

2024-04-29

假设我的程序通过网络 (UDP) 发送 1000 字节。它是否保证接收方将“一批”接收 1000 个字节?或者他可能需要执行多次“读取”,直到收到完整的消息?如果后者为真,我如何确保同一消息的数据包顺序不会“混淆”(按顺序),或者协议可能保证这一点?
Edit:也就是说,我的消息是否有可能被分成几个数据包? (如果我尝试发送 10000 mb 的消息,会发生什么?)


你要么得到全部,要么什么也得不到。

但并不能特别保证您将按照数据包传输的顺序恰好收到一次数据包;数据包丢失、重新排序和(不太常见)重复都是可能的。

有最大帧大小(65,507 字节),send()ing 较大大小的数据包将返回错误。

您必须提供足够的缓冲区才能在一次调用中接收整个帧。

UDP 数据包可以分段为多个 IP 片段,但操作系统会丢弃不完整的数据包。因此,这对于应用程序来说是透明的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接收UDP数据包 的相关文章

随机推荐