NIO java 暂未完成。。。
来源:互联网 发布:莫达非尼淘宝 编辑:程序博客网 时间:2024/06/05 16:32
上一篇博客写了简单的socke。这里再说一下nio
Nio和socket相比,更加复杂一些
1、打开ServSocketChannel,用于监听客户端的连接,是所有客户端连接的父管道
ServerSocketChannel serverChannel=ServerSocketChannel.open();
2、绑定监听端口,设置连接为非阻塞模式。
serverChannel.configureBlocking(false);serverChannel.socket().bind(new InetSocketAddress(port));
3、创建Reactor线程,创建多路复用器并启动线程
selector=Selector.open();new Thread(new ReaciorTask()).start();
4、将ServerSocketChannel注册到Reactor线程的多路复用器Selector上,监听ACCETP事件。
SeletcionKey Key = serverChannel.register(selector,SleletionKey.OP_ACCEPT,ioHandler);
5、多路复用器在线程run方法的无限循环体内轮询准备就绪的key
int num=selector.select();Set selectorKeys=selector.selectedKeys();Iterator it=selectedKeys.iterator();while(it.hasNext()) { SelectionKey key=(SlectionKey)it.next(): //deal with IO event;
6、多路复用器监听到有新的客户端接入,处理新的接入请求,完成TCP三次握手,建立物理链路、
SocketChannel channel= serverChannel.accept();
7、设置客户端链路为非阻塞模式
8、将新接入的客户端连接注册到Reactor线程的多路复用器上,监听读操作用来读取客户端发送的网络消息。
9、异步读取客户端请求到消息缓冲区。
10、对ByteBuffr进行编码,如果有半包消息指针reset,继续读取后续包围
暂未完成。。。
0 0
- NIO java 暂未完成。。。
- nio--未完成
- //暂未完成
- Java学习笔记(未完成.....)
- Java-hive【未完成】
- java Iterator(未完成)
- Java NIO: NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- NIO--JAVA NIO 入门
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- git 详解
- spring mvc 学习笔记1
- Latex 各种处理论文操作-插图、插表格
- mysql事务处理用法与实例详解
- C++构造与析构(10) - private析构函数
- NIO java 暂未完成。。。
- C++IO操作总结
- nginx rewrite 参数和例子
- 手把手教你将myeclipse设置为VS的代码风格(即设置成大括号自动换行)
- vim全角标点不对
- Netty
- Servlet中的GET和POST之间的区别
- php的执行方式、执行过程与加速工具
- gem安装gtk2出错