送信する UDP データグラムがある場合、クライアントは何をしますか?
UDP データグラムを送信したいクライアントは、まずポートにバインドする必要があります。これは、「bind()」システムコールを使用して実行できます。クライアントがポートにバインドすると、「sendto()」システムコールを使用してデータグラムを送信できます。 `sendto()` システムコールには次の引数が必要です。
- ソケット記述子
- 送信するデータを含むバッファへのポインタ
- 送信するデータの長さ
- 旗
- 宛先アドレス
- 宛先アドレスの長さ
クライアントは、データの送信先となるサーバーの宛先アドレスとポートも指定する必要があります。この情報は、`gethostbyname()` または `gethostbyaddr()` システム コールを使用してサーバーのドメイン名または IP アドレスを解決することで取得できます。
クライアントはデータグラムを送信したら、サーバーからの応答を待つことができます。クライアントは「recvfrom()」システムコールを使用してこれを行うことができ、データグラムが受信されるまでブロックされます。 `recvfrom()` システムコールには次の引数が必要です。
- ソケット記述子
- 受信したデータを格納するバッファへのポインタ
・受信データの最大長
- 旗
- 送信元アドレスへのポインタ
- 送信元アドレスの長さへのポインタ
クライアントはデータグラムを受信すると、そのデータを処理し、必要に応じてサーバーに応答を送り返すことができます。