さまざまなエンティティがソケットを介して相互に通信するアプリケーションがあり、C プログラミング言語を使用しています。あるエンティティが別のエンティティに長いメッセージを送信すると、recv() 関数はこのメッセージを部分的に読み取ることがあります。したがって、受信したすべての部分を追加して、受信者側でメッセージを再構築する必要があります。
私の質問は、recv() に関連する一般的なソケット プログラミングの質問です。メッセージが完全に読み取られたことを recv() はどのように認識しますか? 「\n」などの特殊文字でメッセージを終了する必要がありますか? または、メッセージのサイズをヘッダーとして送信する必要がありますか? 一般的な慣行は何ですか?