Netty的深入浅出--32.NIO实现简单网络聊天程序(下)

接上一个程序:Netty的深入浅出--32.NIO实现简单网络聊天程序(上)

编写由服务端收到客户端发送过来的请求然后,又分发给其他已经连接好的客户端上面

遍历获取发送客户端的 UUID的值:

 将请求信息发送给其他客户端:

启动服务器,启动客户端:

 

客户端:

创建客户端NioClient
 

和服务端差不多,不过客户端是通过socketchannel调用open()方法建立连接:

 

通过selector 调用open()方法;

将socketChannel注册到selector中,这里要注意的是SelectionKey的连接key是OP_CONNECT,判断是否已经建立连接。

建立连接:

 

select()方法是阻塞式的

 

判断是否连接上

 

通过selectionKey.channel()获取socketChannel

这里关于为什么强制转换成socketchannel,之前已经讲过了哦。

 

 判断连接是否正处于一个正在进行的状态:

 

是否是正在连接,是的话,就完成连接过程:

 

连接成功之后,向服务端发送的请求信息:

 

将数据写出去:

 

完成输入,建立一个单例的线程池:

 

将键盘输入的数据发送给服务端:

 

注册一个读事件:

 

进行读取:

 

将从服务端获取到的字节数组打印出来:

 

清空处理完之后的keySet

 

启动服务端,两个客户端:

 

 

 

 

通过nc发送:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值