如何在NIO.2中实现多播客户端?

使用Java 7 NIO.2多播客户端的示例如何? 我只能在MulticastChannel文档中找到一半示例。

这个例子有效。 请注意, DatagramChannel.join()需要NetworkInterface才能工作。

 NetworkInterface ni = NetworkInterface.getByInetAddress(address); InetAddress group = InetAddress.getByName("239.255.0.1") DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET) .setOption(StandardSocketOptions.SO_REUSEADDR, true) .bind(new InetSocketAddress(5000)) .setOption(StandardSocketOptions.IP_MULTICAST_IF, ni); MembershipKey key = dc.join(group, ni); ByteBuffer byteBuffer = ByteBuffer.allocate(1500); while (true) { if (key.isValid()) { byteBuffer.clear(); InetSocketAddress sa = (InetSocketAddress) dc.receive(byteBuffer); byteBuffer.flip(); System.out.println("Multicast received from " + sa.getHostString()); // TODO: Parse message } }