java -nio 模型

来源:互联网 发布:成都软件制作 编辑:程序博客网 时间:2024/06/01 10:00

ServerSocketChannel注册到Selector,同时订阅SelectionKey.OP_ACCEPT事件,工作线程内用while(true)循环,不断的遍历Selector里面,接收到通道事件:

1.如果当前遍历到的是SelectionKey.OP_ACCEPT事件,那么取到SelectionKey 对象关联的SocketChannel,再通过SocketChannel.register(selector, SelectionKey.OP_READ)把SocketChannel注册到Selector并订阅SelectionKey.OP_READ事件。

2.如果当前遍历到的是SelectionKey.OP_READ事件,就把SocketChannel里面的数据,读取到ByteBuffer,再从ByteBuffer读取到应用程序中使用。



原创粉丝点击