当前位置: 代码迷 >> J2SE >> 谋求组播的异步通信方法(MulticastChannel)!
  详细解决方案

谋求组播的异步通信方法(MulticastChannel)!

热度:65   发布时间:2016-04-24 00:35:57.0
寻求组播的异步通信方法(MulticastChannel)!!!
Java code
// join multicast group on this interface, and also use this     // interface for outgoing multicast datagrams     NetworkInterface ni = NetworkInterface.getByName("hme0");     DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET)         .setOption(StandardSocketOptions.SO_REUSEADDR, true)         .bind(new InetSocketAddress(5000))         .setOption(StandardSocketOptions.IP_MULTICAST_IF, ni);     InetAddress group = InetAddress.getByName("225.4.5.6");     MembershipKey key = dc.join(group, ni);

这是一段从javadoc上copy的示例代码。没怎么看懂,特别是头两句。。。解释下吧。。。

我想用nio包中的异步通信的模式来实现组播的客户端的接收,而不是传统的模式。这样应该可以节省客户端占用的资源,不用一直处于监听状态!是吗???(我用传统的监听模式,一台电脑开一个服务端和两个客户端,cpu就能达到60%了= =。)

后面发现jdk 7中的multicastChannel应该可以实现我所想达到的效果,但不知道如何用,求指点。。。

------解决方案--------------------
JDK 7 的 sample 中就有例了,为啥不去看看呢?

在 JDK 7 sample 的 nio\multicast 目录中。

JDK 7 的 demo 和 sample 在这里下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html