gpt4 book ai didi

c# - 在 UDP 中接收数据包

转载 作者:可可西里 更新时间:2023-11-01 16:28:27 27 4
gpt4 key购买 nike

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

最佳答案

要么一无所有。

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

存在最大帧大小(65,507 字节),发送()发送更大大小的数据包将返回错误。

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

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

关于c# - 在 UDP 中接收数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com