我想将一个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);
}
发布于 2019-01-09 23:30:12
与传统的UDP通信相比,组播有点奇怪。整个要点是在一个已知的“通道”上同时向任何想要访问的人共享数据。通过使用224.0.0.1到239.255.255.255范围内的IP地址,将这种共享用信号通知给网络。如果你试图绑定到127.0.0.1,你就不再做多播了。如果你花点时间思考一下,这是有道理的--你不能与其他计算机共享内部接口。
https://stackoverflow.com/questions/54112452
复制相似问题