Java网络技术.ppt

表12.3 SelectionKey类的注册值及其方法 例如,接收新连接的通道应该注册为: ServerSocketChannel ch = ServerSocketChannel.open(); SelectionKey acceptKey = ch.register(s,SelectionKey.OP_ACCEPT); 一个读取和写入数据的通道应该注册为: SelectionKey readWriteKey = ch.register(s,SelectionKey.OP_READ|SelectionKey.OP_WRITE); 当用户发送一个请求时,选择器通过返回键进行工作。 //循环实现 While((keysAdded = s.select())0) { //返回键值集合 set readyKeys = s.selectedKeys(); //使用Iterator枚举 Iterator I = readKeys.iterator(); While(i.hasNext()) { SelectionKey sk = (SelectionKey)i.next(); ...接收连接处理请求; } } 具体的处理可以根据键值的状态进行,上面的“接收连接处理请求”就可以为: i.remove(); if ( key.isAcceptable() ) { ...

文档评论(0)

1亿VIP精品文档

相关文档