SelectionKey

155 阅读1分钟

SelectionKey

boolean isValid()

selectionkey会是有效的,除非

  • 被取消
  • ch被关闭
  • selector被关闭

public abstract void cancel()

public final boolean isReadable()

接收缓冲区的可读的数据字节数大于低水位标记

收到Fin

套接字有错误要处理

public final boolean isWritable()

发送缓冲区的可用空间大于低水位标记

对端关闭连接

套接字有错误要处理,此时写入会返回错误

public final boolean isConnectable()

客户端连接已建立或连接失败

public final boolean isAcceptable()

连接已经连接,此时服务端可以调用accept

操作系统底层是:

image.png

image.png