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();
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。