2012-03-11 12 views
2

ブロードキャストUDPパケットであるスレッドがあります。私は同じ放送を聞いている別のスレッドがあります。これは、私のアプリケーションがネットワーク上の他のインスタンスを検出できるようにするためです。しかし、私は1つのインスタンスがブロードキャストするときに、それ自体をピックアップし、それ自体が別のノードだと思うという問題があります。私の質問は、パケットが無視されるように自分自身から来たパケットであることをどうやって確実に判断できるのですか?ループバックを防ぐためにあなたのソケットでsetLoopbackMode(true)を呼び出すことができますが、APIのドキュメントによれば、このアプローチは必ずしも機能しません。JAVA:UDPパケットをブロードキャストするときに自己を検出する

+1

注:ループバックモードを設定すると、Windows 7では正常に動作しますが、UbuntuではsetLoopbackModeヒントが表示されないようです。 –

答えて

2

送信元IPアドレスを確認します。 あなたの住所に相当する場合は、パッケージを破棄してください。送信元のインターフェイスがわからない場合は、すべての送信元アドレスを確認してください。

+0

この削除を行うためのインターフェイスのIPアドレスはどのようにして決定しますか? –

+0

これが見つかりました。http://docs.oracle.com/javase/tutorial/networking/nifs/listing.html –

+0

2つのプログラムが同じコンピュータで実行されている場合、どのように問題を解決できますか? – Matthieu

関連する問題