我有一个关于多播发送和接收的代码。它可以在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可以看到发送和接收的所有多播数据包。但是多播套接字无法接收任何内容。
任何人都有任何想法吗?谢谢你的帮助。