2016-03-30 13 views
0

ループバックインターフェイスが自分の発信マルチキャストトラフィックを受信できないようにするには、次のコードを十分に使用してください。 NICからRJ-45イーサネットケーブルを抜いても、私のudpコードがパケットを受信して​​いるように見えます。自分の発信マルチキャストデータグラムを受信する機能を無効にする

char loopch = 0; 

if(setsockopt(sd, IPPROTO_IP, IP_MULTICAST_LOOP, (char *)&loopch, sizeof(loopch)) < 0){ 
    perror("Setting IP_MULTICAST_LOOP error"); 
    close(sd); 
    return -1;} 
+0

あなたの編集した質問は理にかなっていません。ケーブルを引っ張って自分の送信するマルチキャストループバックを防止する必要があるのはなぜですか?マルチキャストループバックはケーブルを通過する必要はありません。 – EJP

+0

上記のコードでマルチキャストがループバックされないようにするには、私のアプリケーションは、ケーブルを外したままのトラフィックを受信すべきではありません。論理的なステートメント?基本的に私は、上記のコードはマルチキャストトラフィックが私のloインタフェースにループバックされるのを無効にしていないようだと言っています。 –

答えて

0

いいえ別のことをします。それは、あなた自身のアウトバウンドマルチキャストを受信することを可能にします。 man pageを参照してください。

あなたのコードは間違っています。引数は整数でなければなりません。

私は、ループバックインターフェイスでマルチキャストを受信するかどうかを制御するものは認識していません。

+0

わかりやすい質問に申し訳ありませんが、編集されていました。 –

+0

渡される引数は整数である必要がありますか? manページにはintと書かれていますが、インターネット上のコードはcharを使用しています。 –

+0

* man *ページで見つかるかもしれません。私はあなたにインターネットの状態について説明することはできません。 – EJP

関連する問題