マルチキャストの送受信に関するコードがあります。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 は送受信されるすべてのマルチキャスト パケットを確認できることがわかりました。しかし、マルチキャスト ソケットは何も受信できません。
誰でもそれについて何か考えがありますか?ご協力いただきありがとうございます。