技术开发 频道

Java7 NIO.2入门:异步通道API教程

  清单 5. 发送以及接收数据报

// send message
ByteBuffer message
= ByteBuffer.wrap("Hello to all listeners".getBytes());
server.send(message,
new InetSocketAddress(group, port));

// receive message
final ByteBuffer buffer
= ByteBuffer.allocate(100);
client.receive(buffer,
null, new CompletionHandler<SocketAddress, Object>() {
    @Override
    
public void completed(SocketAddress address, Object attachment) {
        System.out.println(
"Message from " + address + ": " +
            
new String(buffer.array()));
    }

    @Override
    
public void failed(Throwable e, Object attachment) {
        System.err.println(
"Error receiving datagram");
        e.printStackTrace();
    }
});

  可在同一端口上创建多个客户端,它们可加入多播组来接收来自服务器的数据报。

  结束语

  NIO.2 的异步通道 APIs 提供方便的、平台独立的执行异步操作的标准方法。这使得应用程序开发人员能够以更清晰的方式来编写程序,而不必定义自己的 Java 线程,此外,还可通过使用底层 OS 所支持的异步功能来提高性能。如同其他 Java API 一样,API 可利用的 OS 自有异步功能的数量取决于其对该平台的支持程度。

0
相关文章