JAVA UDP组播绑定网卡发送消息,一般情况下都有效果

2018-11-08  本文已影响0人  deast

JAVA UDP组播绑定网卡发送消息,一般情况下都有效果

     //本地有两块网卡的情况下,手动添加你想用的那张网卡的ip,0为本地端口号0-65536随便给
     InetSocketAddress inetSocketAddress = new InetSocketAddress(InetAddress.getByName("7.1.21.18"),0);
     try (MulticastSocket socket = new MulticastSocket(inetSocketAddress);) { 
        //TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数,1为本地网络
        socket.setTimeToLive(255);  
        InetAddress mcastaddr = InetAddress.getByName(host); //host为要发送的组播地址
        socket.joinGroup(mcastaddr);// 加入 组播组
        //将数据转换成byte数组发送
        byte[] sendMsg = "66666".getBytes();
        // 待发送数据包 
        DatagramPacket pack = new DatagramPacket(sendMsg, sendMsg.length,mcastaddr, mcastPort); //mcastPort为要发送的组播端口号
        // 组播发送数据报,可被group成员接收到 
        socket.send(pack);
        System.out.print("已发送");
     } catch (Exception e) {
         e.printStackTrace(); 
     }
上一篇下一篇

猜你喜欢

热点阅读