java NIO网络编程之SelectionKey
概述
SelectionKey是java.nio.channels包下的一个类,主要用于绑定selector和chanel之间的关联(注册关系)。
SelectionKey定义了selector监控事件的四种类型:
public static final int OP_READ = 1 << 0; //1,数据读取完成触发的事件 public static final int OP_WRITE = 1 << 2; //4 数据写入完成触发的事件 public static final int OP_CONNECT = 1 << 3; //8 连接成功触发的事件 public static final int OP_ACCEPT = 1 << 4; // 16 有新客户端进来触发的事件,这个是ServerSocketChannel只支持的事件。
API:
public abstract Selector selector(); //返回创建这个SelectionKey的Selector。 //返回该SelectionKey是否有效,刚创建时有效,如果是cancel、绑定的通道关闭、或者创建他的选择器关闭了,他就无效。 public abstract boolean isValid(); //取消注册 public abstract void cancel(); //修改Selector监听该SelectionKey的事件类型。 public abstract SelectionKey interestOps(int ops); //是否可读 public final boolean isReadable() //是否可写 public final boolean isWritable() //是否已连接 public final boolean isConnectable() //是否有新客户端连接到来 public final boolean isAcceptable() //返回当前触发的事件 public abstract int readyOps(); //获取附带的数据 public final Object attachment() //设置附带的数据 public final Object attach(Object ob)
上一篇:
Java架构师技术进阶路线图
下一篇:
计算机网络两台主机互相通信过程概览