multicastSockt与NetworkInterface类介绍

本文详细介绍了UDP多播地址的使用,包括MulticastSocket类的实现原理及操作流程,以及NetworkInterface类如何获取和使用网卡信息。通过实例展示了如何发送和接收多播消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Multicast:

UDP多播地址的类接口,继承DatagramSocket类,DatagramSocket类可以完成多播地址发送,但是在接受端需要用加入多播地址的调用,在接受端必须用Multicast类接口。 UDP报文的多播原理是发送端发送的UDP报文是地址为D类地址,接受端发布信息加入这个D类地址,多播路由器自动完成数据的传播,用的网络层协议为IGMP

NetworkInterface:

代表一个网卡,可以使虚拟的。可以调用网卡的相关信息,ip地址、mac地址、子网掩码等等。用户不能创建对象只能调用系统的NetworkInterface。常规用法是指定一个网卡的ip地址进行通信。一个网卡可以有多个ip地址。不冲突。

多播流程

... String msg = "Hello"; InetAddress group = InetAddress.getByName("228.5.6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi); // get their responses! byte[] buf = new byte[1000]; DatagramPacket recv = new DatagramPacket(buf, buf.length); s.receive(recv); ... // OK, I'm done talking - leave the group... s.leaveGroup(group);

参考信息:

  • 主要是oracle的tutorial章节
  • 库文件说明

转载于:https://juejin.im/post/5cf6abf76fb9a07ec27b90db

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值