recv
したがって、TCP ストリームの場合、各呼び出しでメッセージがどれだけ読み取られたかを追跡する必要があります。その後、部分的な読み取りをつなぎ合わせて、最終的にメッセージを正常に受信できます。
しかし、UDP メッセージの場合、部分的な読み取りをどのように処理する必要がありますか (すべての UDP メッセージが断片化を回避するのに十分小さいと仮定すると)? 部分的なメッセージの残りのデータは破棄されているようですが、recvfrom
送信されたバッファーと同じサイズを返すようにするだけですか? 違いがある場合は、それが部分的で欠陥のあるメッセージであることを意味し、スキップする必要があります。
したがって、概念的には、TCP の例ではループが必要ですが、UDP の例では if ステートメントだけが必要です。
これは正しいです?