NIO

它采用了linux多路复用技术,采用了io轮训方式(时间注册大管家,同步非阻塞)


1多路复用技术(相比BIO多出一个Chanel通道),相当于IO读写的高速公路

Selec.open();

Buffer:缓冲池

put()写数据

Get()读数据

Flip()切换读写模式

Clean()清空缓存

SelectionKey 标示事件类型:(银行柜台那个展示牌)

key.isAccptable();是否可用接受客户端连接


key.isconnectionable();是否可用连接

key.isReadable()

key.isWriteable();


串联

public class NOIServer{

//根据文档定义我们组成部分

private ServerSocketChannel server;

int port=8080;

private  Selector  selector;

ByteBuffer recBuffer =ByteBuffer.allocate(1024);


//缓冲区

public NIOServer(int port) throws IOException{

this.port=port;

server=

}

public static void main(String args[]){


}

public void listen


Set<SelectionKey> keys=selector.selectedKeys();

Iteratro<SelectionKey> iterator=keys.iterator();

while(iterator.hasNext())

process(iterator.next())

}

private void process(SelectionKey key){

client=server.accept();

client.configureBlocking(false);

client.register(selector,SelectionKey.OP_READ);

else if(key.isValid()&&key.isReable()){


recBuffer.clear();

key.channel();

int len=client.read(recBuffer);

if(len>0){

String msg=new String(recBuffer.array)(,0,len);

seesionMsg.put(key,msg);

client.register(selector,SelectionKey.OP_WRITE);

}else{


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值