在Mac上使用JDK 7时,多播套接字不起作用

时间:2012-10-09 23:46:58

标签: macos java multicastsocket

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

任何人都有任何想法吗?谢谢你的帮助。

0 个答案:

没有答案