技术开发 频道

Java 7新I/O特性解析

  MulticastChannel

  这个新的接口允许开启IP多播,因此你可以向一个完整的组发送和接收IP数据报。多播实现了直接绑定本地多播设备,这个接口是通过DatagramChannel和AsynchronousDatagramChannel实现的。

  下面是从Javadoc中摘取的一个打开DatagramChannel t的简单示例:

NetworkInterface networkInterface = NetworkInterface.getByName("hme0");

DatagramChannel dc
= DatagramChannel.open(StandardProtocolFamily.INET)
         .setOption(StandardSocketOption.SO_REUSEADDR,
true)
         .bind(
new InetSocketAddress(5000))
         .setOption(StandardSocketOption.IP_MULTICAST_IF, networkInterface);

InetAddress group
= InetAddress.getByName("225.4.5.6");

MembershipKey key
= dc.join(group, networkInterface);

  你可以使用以前经常使用的DatagramChannel,但操作方式是多播了,因此你收到的是接口中所有的数据包,你发送的数据包会发到所有组。

0
相关文章