小编swr*_*rap的帖子

java.net.SocketException:不是多播地址

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

//抛出

Unable to connect to host:localhost on port:8888
java.net.SocketException: Not a multicast address
Run Code Online (Sandbox Code Playgroud)

有效的示例:

InetAddress group = InetAddress.getByName("224.0.0.1");
int port = 8888;
MulticastSocket socket = new MulticastSocket(port);
socket.joinGroup(group);
Run Code Online (Sandbox Code Playgroud)

java networking network-programming datagram multicastsocket

6
推荐指数
1
解决办法
6164
查看次数