我正在使用MulticastSocket,但每当我尝试加入一个组时,当我在"localhost" IP上运行该组时,它从未生效。然而,我找到了这篇文章http://lycog.com/programming/multicast-programming-java/,它指出范围应该在224.0.0.1和239.255.255.254之间。当我将该IP转换为InetAddress并加入该组时,它就起作用了。请解释为什么这是必要的。
示例:
示例:
InetAddress group = InetAddress.getByName("localhost");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
//抛出异常
Unable to connect to host:localhost on port:8888
java.net.SocketException: Not a multicast address
有效的示例:
InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);