概述

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网络编程之SelectionKey相关推荐

  1. Java NIO网络编程之Selector

    概述 Java的NIO,用非阻塞的IO方式,可以用一个线程,处理多个客户端连接(多路复用),就会用到Selector(多路复用器/选择器). Selector能够检测多个注册通道channel上是否有 ...

  2. Java:网络编程之UDP的使用

    java.net  类 DatagramSocket 此类表示用来发送和接收数据报包的套接字,数据报套接字是包投递服务的发送或接收点. java.net  类 DatagramPacket 此类表示数 ...

  3. Java网络编程之NIO编程(待补充)

    Java网络编程之NIO编程(待补充) 学习网站1:http://ifeve.com/java-nio-all/ 学习网站2:http://www.ibm.com/developerworks/cn/ ...

  4. 原生JDK网络编程之NIO篇

    原生JDK网络编程之NIO篇 一.NIO是什么 NIO库是在JDK1.4中引入的.NIO弥补了原来的I/O的不足,它在标准Java代码中提供了高速的.面向块的I/O.     NIO可以称为 no-b ...

  5. java 网络编程简单聊天_网络编程之 TCP 实现简单聊天

    网络编程之 TCP 实现简单聊天 客户端 1.连接服务器 Socket 2.发送消息 package lesson02;import java.io.IOException;import java.i ...

  6. Java网络编程之TCP、UDP

    Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. J ...

  7. java网络编程之TCP通讯

    java中的网络编程之TCP协议的详细介绍,以及如何使用,同时我在下面举2例说明如何搭配IO流进行操作, 1 /* 2 *TCP 3 *建立连接,形成传输数据的通道: 4 *在连接中进行大数据量传输: ...

  8. 浅谈Java网络编程之Socket (2)

    <浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...

  9. 浅谈Java网络编程之Socket (1)

    和大家一起分享的是Java网络编程之Socket.在Java中Socket可以理解为客户端或者服务器端的一个特殊的对象,这个对象有两个关键的方法,一个是getInputStream方法,另一个是get ...

最新文章

  1. [导入]VB实现SQL Server数据库备份/恢复
  2. 如何成为一名大数据工程师?
  3. ITK:自适应直方图均衡图像滤波器
  4. JS中数据类型、内置对象、包装类型对象、typeof关系
  5. DAVY的神龙帕夫——读者的心灵故事|十二橄榄枝的传说
  6. 文件系统(02):基于SpringBoot框架,管理Xml和CSV文件类型
  7. php 波形图,PHP分析.wav文件并绘制png格式的波形图_PHP
  8. 961计算机组成原理,2017年华中科技大学附属协和医院961计算机组成原理考研强化模拟题...
  9. 18.TCP使用的注意事项
  10. 《马化腾:领跑互联网》— 综合素质提升书籍
  11. Java开发微信公众号
  12. Inter core i7处理器中(x86架构)驱动开发:关于APCI Hardware ID的描述
  13. 数据预测模型_如何根据已有数据得出预测模型?线性回归公式来帮你!
  14. 寄存器与ROM与RAM
  15. 欧盟物联网推动措施重点与趋势观察
  16. 二、什么是asp网站
  17. matlab用割线法,Todd’s Matlab讲义第6讲:割线法
  18. Personalized Web Search总结
  19. ElasticSearch 中的中文分词器以及索引基本操作详解
  20. 脱离鼠标后必须记住地快捷命令方式

热门文章

  1. 大数据学习笔记48:Flume Sources(Flume源)
  2. JavaScript学习笔记:类型检测
  3. bzoj1293 [SCOI2009]生日礼物 单调队列
  4. 2017.9.11 聪明的燕姿 失败总结
  5. 【英语学习】【WOTD】stratagem 释义/词源/示例
  6. 【英语学习】【WOTD】litmus test 释义/词源/示例
  7. 个人知识整理(javascript篇初识)
  8. 计算机网络OSI模型、TCP/IP模型与5G协议
  9. python勿使用mutable值作为默认参数
  10. php 小程序自定义图,微信小程序之如何使用自定义组件封装原生 image 组件