简介
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章节
- 库文件说明