13

ネットワークを設定せずに一連のマルチキャスト IP プログラム (送信側/受信側) をテストしたい場合、同じボックスで実行できますか? もしそうなら、何を設定する必要があるか、または別の方法で行う必要がありますか?

4

4 に答える 4

15

あなたはすでにこれを理解しているかもしれません (質問は今では 2 年前のものです) が、単一のホストでマルチキャストを行うには、次の 2 つのことだけを行う必要があります: (1) 受信するマルチキャスト ソケットに SO_REUSEADDR が設定されていることを確認します (そのため、複数のプロセスが同じマルチキャスト アドレスをバインドできます)、(2) 送信するマルチキャスト ソケットに IP_MULTICAST_LOOP が設定されていることを確認します (パケットが同じシステムの受信者に「ループ バック」されるようにします)。アプリケーションがマルチキャストの送信と受信の両方に 1 つのソケットを使用する場合は、両方のソケット オプションを設定します。

int recv_s = socket(AF_INET, SOCK_DGRAM, 0);
int send_s = socket(AF_INET, SOCK_DGRAM, 0);
u_int yes = 1;
setsockopt(recv_s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
setsockopt(send_s, IPPROTO_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes));
于 2011-03-17T14:58:31.880 に答える
0

ある程度のネットワーク設定が必要です。物理ネットワークを作成したくない場合は、1つのネットワークカードに複数のIPアドレスを追加できます。マシンに複数のネットワークカードがある場合は、2枚のカードとハブだけでネットワークを作成することもできます。また、マシンにワイヤレスインターフェイスと有線インターフェイスがある場合は、ワイヤレスインターフェイスと有線インターフェイスの両方を介してマシンをワイヤレスハブに接続すると、ネットワークも利用できます。

これらのアイデアの1つがお役に立てば幸いです。パットO

于 2009-11-12T03:54:24.337 に答える
0

これはあなたが探しているものではないかもしれませんが、ブロードキャストやソケット接続などを大量に使用するコードを書いていたとき、VMWare で 2 つの仮想マシンを作成し、それらをライブ CD から起動し、コードをアップロードしました。コードが Windows で実行される場合は、Windows を 2 つインストールするだけです。VMWare はマシンを同じサブネット上に配置するため、それらの間の通信はブロードキャストなどすべて正常に機能します。(そして、マルチキャストを想定していますが、直接の経験はありません。)

于 2009-11-12T02:09:24.157 に答える
0

最も簡単な方法は、NIC に複数の IP を設定することです。すべてではなく、特定のアドレスでリッスンするようにしてください。

HTH

于 2009-11-13T16:59:04.197 に答える