1

マルチキャストの送受信に関するコードがあります。Mac では JDK 6 を使用して動作します。ただし、JDK 7 を使用するように変更すると、正しく動作しません。

コードは次のようになります。

final InetAddress group = InetAddress.getByName("228.2.3.4");
final MulticastSocket socket = new MulticastSocket(2012);

socket.setReuseAddress(true);
socket.joinGroup(group);

final int length = 8 * 1024;
final byte[] bytes = new byte[length];
final DatagramPacket packet = new DatagramPacket(bytes, length);

while(true) 
{                       
socket.receive(packet);
    ...
}
...

JDK 7 を使用してコンパイルして実行すると、VMware の実行中には機能しません。ただし、JDK 6 を使用している場合は、VMware が実行されていても機能します。

また、WireShark を使用してアダプターを監視しようとしています。また、JDK 7 を使用してプログラムを実行すると、WireShark は送受信されるすべてのマルチキャスト パケットを確認できることがわかりました。しかし、マルチキャスト ソケットは何も受信できません。

誰でもそれについて何か考えがありますか?ご協力いただきありがとうございます。

4

0 に答える 0