机器在Windows 7中从睡眠状态唤醒或休眠后,多播套接字不起作用

时间:2012-09-21 00:30:24

标签: java windows-7 multicastsocket

此问题与multicast socket - will not work when computer wakes up from sleep类似。但是这个问题已经关闭,其解决方案不是我想要的。

我有一个关于多播套接字接收的代码。它可以在Windows XP,7和Mac中运行。但是现在我发现了一个问题,“当我在Windows 7中运行它,休眠或睡眠PC,然后唤醒PC时,套接字不能再接收”。它只发生在Windows 7中。在XP和MAC中没有问题。“

代码是这样的:

final InetAddress group = InetAddress.getByName("234.255.255.255");
final MulticastSocket socket = new MulticastSocket(5555);

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

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

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

任何人都有任何想法吗?

我已经尝试了很多方法来探索它。我曾经使用WireShark来监控网络适配器,我可以看到收到的组播数据包到PC。但是,java套接字无法一直接收。

0 个答案:

没有答案