2

192.168.XX 以外のネットワークに接続されたサーバーでリッスンしようとすると、Java の MulticastSocket.receive() への呼び出しが無期限にハングする (パケットを受信しない) Windows 7 マシンでこの問題が発生しています。 . サーバーが 192.168.XX ネットワークに接続されている場合、MulticastSocket.receive() はハングしません。Windows XP と Ubuntu 10.04 を実行している職場の他の開発システムで動作するため、これは Windows 7 マシンの構成の問題であると確信しています。

どんな助けでも大歓迎です。

アップデート:

MulticastSocket.receive() が無期限にハングする理由がわかりました。何が起こったのかというと、Windows ファイアウォールが、私のサーバーに対応するネットワークからの着信パケットをブロックしていたということでした。この問題の簡単な解決策は、そのネットワークで Windows ファイアウォールを無効にすることでした (私の場合は、パブリック ネットワークで Windows ファイアウォールを無効にしました)。その後、 MulticastSocket.receive() は着信パケットを取得できました。

4

1 に答える 1

2

「非192.168.XXネットワーク」は、リスニングマシン192.168.XXネットワーク上にあることを意味します。その場合は、マルチキャストトラフィックがネットワーク間でルーティングされていない(通常はルーティングされていない)状況である可能性があります。あなたが言及している他の開発マシンは、Windows 7マシンと同じネットワーク上にありますか?それとも、デュアルホーム(2つのネットワークセグメントに接続されている)ですか?

ネットワーク管理者がこのトラフィックを通過させるようにルーターを構成できるかどうかを確認できます。

于 2013-03-01T21:13:02.793 に答える