这个问题与多播套接字类似 - 当计算机从睡眠中唤醒时将不起作用。但是这个问题已经结束了,它的解决方案不是我想要的。
我有一个关于多播套接字接收的代码。它可以在 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套接字不能一路接收。