Reactor模式:通过注册感兴趣的事件及扫描是否有感兴趣的事件发生,从而做出相应。
Reactor模式
客户端示例
需要注意的是,遍历返回的SelectionKey时,获取到Channel时,如果不指定非阻塞模式如代码位置2和3所示,进行IO使将发生阻塞。
服务端示例
相比于客户端程序,无非将SocketChannel改为ServerSocketChannel,绑定指定端口上监听,然后再注册一个接受就绪的事件即可,其他都一样。