此问题与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套接字无法一直接收。