UDP 送信者が sendto を数回実行するとします。
sendto(s、バッファ、100、...); sendto(s、バッファ、200、...); sendto(s、バッファ、300、...);
受信者は、データが利用可能になると次のコードを実行します。
void OnReceive() { recvfrom(s、バッファ、1000、...); }
recvfrom が呼び出されたときにすべてのデータ (100+200+300) が利用可能である場合、1 回の recvfrom 呼び出しまたは予測できないサイズの複数回の recvfrom 呼び出しで読み取られる可能性はありますか? それとも、送信されたのと同じ部分で常に受信されます: 100、200、300?
100% 正しいレシーバー コードを作成するには、ストリーム解析ロジックやデータ レコード読み取りロジックを実装する必要がありますか?
この質問では、データが失われておらず、パケットの順序が変更されていないと仮定していますが、一般的に、これは UDP ソケットでは正しくありません。