Nio使用介绍

2016-05-28 20:15:00
admin
原创 101
摘要:Nio使用介绍

一、Nio使用介绍

class AbstractSelectableChannel extends SelectableChannel

class ServerSocketChannel extends AbstractSelectableChannel

1、ServerSocketChannel.open(),打开一个网络通道;

2、ServerSocketChannel.socket(),返回通道关联的ServerSocket;

3、ServerSocketChannel.configureBlocking(block),设置阻塞模式,默认处于阻塞模式;

4、ServerSocketChannel.register(sel,ops,att),注册通道到选择器,返回一个选择健SelectionKey;

5、ServerSocketChannel.bind(address),绑定本地网络地址,用于监听网络连接请求;

6、ServerSocketChannel.accept(),接受网络连接请求,新建连接成功返回SocketChannel


class AbstractSelectableChannel extends SelectableChannel

class SocketChannel extends AbstractSelectableChannel

1、SocketChannel.open(),打开一个网络通道;

2、SocketChannel.socket(),返回通道关联的Socket;

3、SocketChannel.configureBlocking(block),设置阻塞模式,默认处于阻塞模式;

4、SocketChannel.register(sel,ops,att),注册通道到选择器,返回一个选择健SelectionKey;

5、SocketChannel.connect(address),连接网络地址;

6、SocketChannel.finishConnect(),连接是否完成;

7、SocketChannel.read(buffer),从通道读取数据;

8、SocketChannel.write(buffer),向通道写入数据;


class SelectionKey

1、SelectionKey.channel(),返回注册的通道;

2、SelectionKey.interestOps(),返回关注的操作;

3、SelectionKey.attachment(),返回注册的附加对象;

4、SelectionKey.cancel(),取消注册通道到选择器;

5、SelectionKey.isAcceptable(),需要处理事件,接受网络连接完成;

6、SelectionKey.isConnectable(),需要处理事件,连接网络地址完成;

7、SelectionKey.isReadable(),需要处理事件,读操作需要处理;

8、SelectionKey.isWritable(),需要处理事件,写操作需要处理;


class Selector

1、Selector.open(),打开一个选择器;

2、Selector.select(),返回准备好的选择键数量,阻塞操作,清除wakeup状态;

3、Selector.selectNow(),返回准备好的选择键数量,非阻塞操作,清除wakeup状态

4、Selector.selectedKeys(),返回准备好的选择键集合,集合元素必须手动清除;

5、Selector.wakeup(),唤醒一个选择操作,只能被select或selectNow消费;


Nio代码示例:

1、NioTimeServer.java

2、NioTimeQuery.java

3、NioTimeServerNonBlocking.java

4、NioPingNonBlocking.java

5、NioSum.java

发表评论
评论通过审核之后才会显示。