java nio selector的使用
来源:互联网 发布:炫光软件 编辑:程序博客网 时间:2024/09/21 09:26
在继续深入netty之前,还是补习一下java的selector的使用吧,没想到java里面用起来跟epoll什么的也差不太多。。。
好吧,废话少说,直接上代码了,反正也比较的简单,也就不细说了。。。。。
package fjs;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;import java.util.Iterator;public class Fjs {/** * @param args * @throws IOException */public static void main(String[] args) throws IOException {// TODO Auto-generated method stubSelector sel = Selector.open();ServerSocketChannel sc = ServerSocketChannel.open();sc.configureBlocking(false);sc.socket().bind(new InetSocketAddress(8000));sc.register(sel, SelectionKey.OP_ACCEPT); //相当于是注册selector,并且注册事件是accept事件while (true) {sel.select();Iterator<SelectionKey> ki = sel.selectedKeys().iterator(); //用于遍历所有产生的事件while (ki.hasNext()) {SelectionKey key = ki.next();if (key.isAcceptable()) {ServerSocketChannel channel = (ServerSocketChannel) key.channel();SocketChannel ss = channel.accept();if (ss != null) {ss.configureBlocking(false);ss.register(sel, SelectionKey.OP_READ);}}if (key.isReadable()) {ByteBuffer buffer = ByteBuffer.allocate(1024);SocketChannel socketChannel = (SocketChannel) key.channel();socketChannel.read(buffer);buffer.flip();while (buffer.hasRemaining())System.out.print((char)buffer.get());socketChannel.register(sel, SelectionKey.OP_WRITE);} if (key.isWritable()) {SocketChannel ch = (SocketChannel) key.channel();ByteBuffer buff = ByteBuffer.wrap("hello world".getBytes());ch.write(buff);ch.close();}}}}}
- java nio selector的使用
- java nio Selector的使用-服务器端
- java nio Selector的使用-客户端
- java nio Selector的使用-服务器端
- java nio Selector的使用-服务器端
- java nio Selector的使用-客户端
- java nio Selector的使用-服务器端
- java nio Selector的使用-客户端
- Java NIO之Selector的使用
- java使用selector NIO socket
- 使用java nio的selector做一个数据查询主机
- JAVA NIO的selector的实现原理
- Java NIO之多个Selector的实现
- nio selector简单使用
- Java NIO 的前生今世 之四 NIO Selector 详解
- Java NIO 的前生今世 之四 NIO Selector 详解
- Java NIO Selector
- JAVA NIO之selector
- CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)
- [jtable]用法(包括建立jtable和数据更新)
- boost 库在windows 系统下,gcc编译器编译
- tomcat映射路径的配置方法
- 利用MySQL WorkBench生成各表关系图
- java nio selector的使用
- HDU 3195 Interesting Numbers
- 用rz,sz命令在windows和linux之间传输文件
- 基于2.6.35内核的ov9650摄像头驱动分析
- android 写入文件
- 共享内存函数(shmget、shmat、shmdt、shmctl)及其范例
- AOP是什么?
- 如何做研究
- Android框架浅析之锁屏(Keyguard)机制原理 .