特定のタイプのネットワーク マルチメディア デバイス用に一種の IP ファインダーを実装しています。LAN 内のそのタイプのすべての動作中のデバイスを、その IP アドレスやその他の詳細とともに見つけたいと考えています。
デバイスには、デバイス検出の独自の方法があります。
次のように動作します。クライアントは、UDP 経由で LAN 経由でブロードキャスト要求を送信します。
宛先ポート番号は固定です。
応答として、この要求の形式を理解する LAN 内のすべてのサーバーが、この要求に応答して、自身に関する情報を提供します。
sendto() を使用して UDP 要求メッセージをブロードキャストしています。
ここでの問題は、要求に応答するデバイス (すなわちサーバー) の数がわからないことです。
recvfrom() を何回呼び出す必要がありますか?
すべてのデバイスからの応答を処理したことはいつわかりますか?
または、一般的に、recvfrom() は複数のサーバーから応答を受信するための正しい選択ですか?
同じことを達成するためのより良い(またはここで間違っている場合は正しい)方法はありますか?
私は C/C++ でプログラミングしており、Windows と Linux の両方でコーディングする予定です。
よろしくお願いします。
編集:ここにいるすべてのネットワークプログラミングウィザードの助けを借りて、私は私の問題の解決策を見つけました:)
select()は私にとってまさにものです...
時間を割いて助けてくれた皆さんに感謝します自分