如何将java.net.MulticastSocket绑定到本地主机

时间:2019-01-09 14:33:31

标签: java

我想将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);
    }

1 个答案:

答案 0 :(得分:2)

与传统的UDP通信相比,组播有点奇怪。关键是要与任何想要访问的人同时在已知的“通道”上共享数据。通过使用224.0.0.1到239.255.255.255范围内的IP地址,此共享被“发送信号”到网络。如果您尝试绑定到127.0.0.1,那么您就不再进行多播。而且,如果花一点时间考虑一下,那是有道理的-您无法与其他计算机共享内部接口。