简单聊天室之NIO改写服务端

NIO改写服务端

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

相比前边案例改写的类

  • TCPServer
  • ClientHandler

出现的问题

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

运行实例

客户端

服务端

代码

注释也在里边了

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

不足

  • 线程数量太多
  • 数据传输可能出现诸如粘包之类的问题
  • 下篇文章会进行改进

猜你喜欢

转载自blog.csdn.net/weixin_42089175/article/details/89255145
今日推荐