当前位置:   article > 正文

简单聊天室之NIO改写服务端_用nio技术替代一客户一线程技术改写

用nio技术替代一客户一线程技术改写

NIO改写服务端

  • 性能分析篇已经写到,阻塞模式若客户端数量达到上万十万百万,服务器的cpu、内存和线程的压力非常大,必须要进行性能改进。方案便是将服务端改写成非阻塞模式(NIO)
  • 将等待连接的accept改写为ServerSocketChannel的Socket注册方法
  • 读写线程也分别改写为ServerSocketChannel的Socket注册方法

相比前边案例改写的类

  • TCPServer
  • ClientHandler

出现的问题

  • 服务端接收客户端发送的内容时,第一条是正常的,此后总是出现接收一条空数据的情况,不解(看运行实例)
  • IDEA的debug和run的结果出现差异的情况。debug是正常的,run会出现上边的问题
  • 服务端接收客户端的内容时,会在结尾加上回车换行符(\n\r)

运行实例

客户端

服务端

代码

注释也在里边了

链接: 百度网盘 提取码: ddjq 

不足

  • 线程数量太多
  • 数据传输可能出现诸如粘包之类的问题
  • 下篇文章会进行改进
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/160781
推荐阅读
相关标签
  

闽ICP备14008679号