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,NIO,java,网络,socket)