java認(rèn)證
播數(shù)據(jù)報套接字類用于發(fā)送和接收 IP 多播包。MulticastSocket 是一種 (UDP) DatagramSocket,它具有加入 Internet 上其他多播主機(jī)的“組”的附加功能。
多播組通過 D 類 IP 地址和標(biāo)準(zhǔn) UDP 端口號指定。D 類 IP 地址在 224.0.0.0 和 239.255.255.255 的范圍內(nèi)(包括兩者)。地址 224.0.0.0 被保留,不應(yīng)使用。
可以通過首先使用所需端口創(chuàng)建 MulticastSocket,然后調(diào)用 joinGroup(InetAddress groupAddr) 方法來加入多播組:
// join a Multicast group and send the group salutations
...
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);
將消息發(fā)送到多播組時,該主機(jī)和端口的所有預(yù)定接收者都將接收到消息(在數(shù)據(jù)包的生存時間范圍內(nèi),請參閱下文)。套接字不必成為多播組的成員即可向其發(fā)送消息。
當(dāng)套接字預(yù)定多播組/端口時,它將接收由該組/端口的其他主機(jī)發(fā)送的數(shù)據(jù)報,像該組和端口的所有其他成員一樣。套接字通過 leaveGroup(InetAddress addr) 方法放棄組中的成員資格。多個 MulticastSocket 可以同時預(yù)定多播組和端口,并且都會接收到組數(shù)據(jù)報。
同時,不允許 applet 使用多播套接字。