簡單聊天室之NIO改寫服務端

NIO改寫服務端

  • 性能分析篇已經寫到,阻塞模式若客戶端數量達到上萬十萬百萬,服務器的cpu、內存和線程的壓力非常大,必須要進行性能改進。方案便是將服務端改寫成非阻塞模式(NIO)
  • 將等待連接的accept改寫爲ServerSocketChannel的Socket註冊方法
  • 讀寫線程也分別改寫爲ServerSocketChannel的Socket註冊方法

相比前邊案例改寫的類

  • TCPServer
  • ClientHandler

出現的問題

  • 服務端接收客戶端發送的內容時,第一條是正常的,此後總是出現接收一條空數據的情況,不解(看運行實例)
  • IDEA的debug和run的結果出現差異的情況。debug是正常的,run會出現上邊的問題
  • 服務端接收客戶端的內容時,會在結尾加上回車換行符(\n\r)

運行實例

客戶端

服務端

代碼

註釋也在裏邊了

鏈接: 百度網盤 提取碼: ddjq 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章