メッセージのマルチキャストIP 230.10.10.10、ポート11111をリッスンするUDPクライアントを実行しています。 UDPブロードキャスタと同じサーバーでクライアントJavaコードを実行すると、UDPメッセージを受信できます。ただし、同じドメインの別のサーバーで実行すると、メッセージが表示されません。Java UDPの問題
私はWindows Server 2008を使用しています。どうすればそれをデバッグするのか教えてください。
メッセージのマルチキャストIP 230.10.10.10、ポート11111をリッスンするUDPクライアントを実行しています。 UDPブロードキャスタと同じサーバーでクライアントJavaコードを実行すると、UDPメッセージを受信できます。ただし、同じドメインの別のサーバーで実行すると、メッセージが表示されません。Java UDPの問題
私はWindows Server 2008を使用しています。どうすればそれをデバッグするのか教えてください。
助けてくれてありがとう。私は今解決した。溶液は、放送事業者は、私はsetInterfaceの方法でリスナーIPを設定する場合、2つのIPアドレスを有し、マルチホームとリスナーが単一IP.Soを有しているリスナー
DatagramSocket datagramSocket = new MulticastSocket(multicastPort);
((MulticastSocket) datagramSocket).setInterface(inetNicAddress);
でsetInterfaceの()メソッドをコールすることでしたそれは正常に働いた。
しかし、setInterfaceメソッドはブロードキャストで呼び出され、マルチホームであり、大丈夫だから、これはどういう仕組みかは分かりません。しかし、なぜリスナーにもそれを設定する必要がありますか? 。アドバイスが参考になります。
第1に、UDPは保証された配信プロトコルではありません。 第2に、ネットワーク上でUDPパケットをファイアウォールまたはフィルタリングすることができます。
クライアントマシンからポート11111のサーバーマシンに接続できますか。
私はそれです。おそらくあなたのルータの1つがUDPパッケージをフィルタリングします。あなたの "サーバー"のローカルファイアウォールでもあります。 –
それはサーバーなので、ファイアウォールを無効にすることはできません。しかし、ファイアウォールの設定でポート11111に例外を追加しました。私が知りたいのは、それがファイアウォールの問題かルータフィルタの問題かどうかをどのように確認するのかです。これをデバッグするためのツールやヘルパークラスがありますか? – Dunxton
問題は、マルチキャストパケットのTTLである場合もあります。 0の場合、パッケージはローカルでしか受信できません。 Wiresharkのようなツールを使ってネットワークトラフィックを検査することをお勧めします。それが問題ならば、TTL値を32に増やしてください。-Djava.net.preferIPv4Stack=true
も設定する必要があります。
あなたは最終的に解決策を持って聞いて良いです。私は、あなた自身の答えの中で、代わりにこれについて新しい質問をすることをお勧めします。そうでなければ、誰もそれを見つけることはほとんどありません。 – jeha