2016-04-14 11 views
-2

cmdで "netsh interface ip show joins"コマンドを使用して、各インターフェイスの下にマルチキャストグループを表示できます。しかし、実際には、 "Interface 8:VirtualBox Host-Only Network"にIPアドレス239.39.188.188を追加するなど、 インターフェイスにグループを追加する方法はわかりません。最も簡単な方法が理解できます。特定のインターフェイスでマルチキャストグループを追加する方法(Windows)

Interface 3: Ethernet 
Scope  References Last Address 
---------- ---------- ---- --------------------- 
0     0 Yes 224.0.0.1 

Interface 1: Loopback Interface 
Scope  References Last Address 
---------- ---------- ---- --------------------- 
0     2 Yes 239.255.255.250 

Interface 8: VirtualBox Host-Only Network 
Scope  References Last Address 
---------- ---------- ---- --------------------- 
0     0 Yes 224.0.0.1 
0     1 Yes 224.0.0.251 
           239.39.188.188 // this is what I want to add 

ところで、私は、UDPソケットを開き、(How to add my host to Multicast Group...!)IP_ADD_MEMBERSHIPを設定するように、いくつかの方法で試みました。また、私はlinux "ip maddr [add | del] MULTIADDR dev STRING"でコマンドを試しました。 その後、IP_ADD_MEMBERSHIPが正常に設定されていることがわかりました。しかし、結果として、上記の表では、特定のインターフェースの下にグループを追加することはできません。 UDPソケットを開き、IP_ADD_MEMBERSHIPの部分を設定するために、linuxで以下のように記述しました。

+1

「UDPソケットを開いてIP_ADD_MEMBERSHIPを設定する」は、あなたがそれを行う方法です。 「それらのすべてが失敗しました」は問題の説明ではありません。 – EJP

+0

そしてnetherは '特定のインターフェースの下にグループを追加できません'です。あなたがコードを投稿していないので、トピックをオフにします。 – EJP

+0

私は今話題を外していないことを願っています。< –

答えて

0

あなたは、グループに参加したソケットを無期限に開いておく必要があります。つまり、プログラムを終了してはいけません。最後にfor (;;) { sleep(1000000); }程度を追加してください。

プログラムが終了すると、ソケットは自動的に閉じられ、OS(WindowsまたはLinuxの場合は問題ありません)によってグループが再び終了します。

複数のプログラムが同じマルチキャストグループに参加するため、OSで発生する処理はやや複雑です。そのため、OSは参照カウントを保持しており、マシンはグループがいずれのソケットでも参照されなくなったときにのみそのグループを終了します。

関連する問題