假设 UDP 发送方多次执行 sendto:
发送到(s,缓冲区,100,...); 发送到(s,缓冲区,200,...); 发送到(S,缓冲区,300,...);
接收器在数据可用时执行以下代码:
无效的 OnReceive() { recvfrom(s, 缓冲区, 1000, ...); }
现在,如果调用 recvfrom 时所有数据 (100+200+300) 都可用,是否有可能通过一次 recvfrom 调用或多个不可预测大小的 recvfrom 调用读取数据?或者它总是被发送时相同的部分接收:100、200、300?
要编写 100% 正确的接收器代码,我应该实现一种流解析逻辑,还是数据记录读取逻辑?
对于这个问题,我假设数据没有丢失并且数据包顺序没有改变,但是,在一般情况下,这对于 UDP 套接字是不正确的。