2

Winsock2 を使用してアプリを開発しています。私の場合、ソース デバイスはユニキャストとマルチキャストの両方の UDP データグラムを同じポートを介してターゲット デバイスに送信します。受信側で、2 つのソケットを作成しました。1 つはユニキャスト データグラムを受信するため (socket1 という名前)、もう 1 つはマルチキャストを受信するため (socket2 という名前)。Socket2 は、割り当てられたマルチキャスト グループに追加されます。問題は、2 つのソケットが同じポートにバインドされているため、socket1 が受信するはずのユニキャスト データグラムを socket2 が受信することです。

socket1 がまだローカル IP アドレスにバインドされている間に、socket2 をマルチキャスト IP アドレスにバインドしようとしましたが、socket2 のバインド操作は失敗しました。ここのいくつかのスレッドで、マルチキャスト IP アドレスへのバインドは Windows ではサポートされていないが、Linux/BSD ではサポートされていると述べているのを見ました。これは本当ですか?これを伝える文書や情報はありますか?

Windows でマルチキャスト IP アドレスへのバインドがサポートされていない場合、IP レベルまたはソケット レベルのオプションを使用して、同じポートでユニキャスト データグラムとマルチキャスト データグラムを区別するにはどうすればよいですか? または、これを実現するために特定のフィルター ルールを作成する必要がありますか?

ありがとう!

ライアン

4

0 に答える 0