我想将MulticastSocket
绑定到地址127.0.0.1(套接字只能在当前主机内访问),但是在以下代码示例中,我得到了
java.net.SocketException: Network is unreachable: Datagram send failed exception
是否有解决问题的方法?这是我的代码
int port = 6677;
InetAddress group = InetAddress.getByName("232.0.1.10");
try(MulticastSocket s = new MulticastSocket(new InetSocketAddress(InetAddress.getByName("127.0.0.1"),port))){
String msg = "Hello";
s.joinGroup(group);
DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(),group, port);
s.send(hi);
}
答案 0 :(得分:2)
与传统的UDP通信相比,组播有点奇怪。关键是要与任何想要访问的人同时在已知的“通道”上共享数据。通过使用224.0.0.1到239.255.255.255范围内的IP地址,此共享被“发送信号”到网络。如果您尝试绑定到127.0.0.1,那么您就不再进行多播。而且,如果花一点时间考虑一下,那是有道理的-您无法与其他计算机共享内部接口。