nio:(其工作流程:no blocking io
或者new io
),非阻塞io,是相對於傳統io來說,其意義在於網路io的非阻塞性。
buffer :資料的載體使用nio模擬一套客戶端->服務端的群組聊天功能,具體實現:channel:客戶端到服務端的通道,負責資料(buffer)的傳輸
selector:多路復用器,用於監聽channel的事件(可對應多個channel)
1.server端
public
static
void
chatserver()
throws ioexception
//如果當前選擇鍵事件為read,說明客戶端有資料可以讀取
if(selectionkey.
isreadable()
)}buffer.
clear()
;}}//已經處理過的選擇鍵要及時移除,否則會導致多次重複處理導致異常
selectionkeys.
remove
(selectionkey);}
}}
2.client端
public
static
void
chatclient()
throws ioexception
catch
(ioexception e)
if(read >0)
}}})
.start()
;while
(true
)else
}}
使用NIO實現多人聊天
基於nio實現多人模擬聊天視窗,首先要了解,nio元件,serversocketchannel socketchannel selector selectorkey。了解了他們各自作用以及關係,多人聊天系統很容易理解實現,這裡不在介紹,自行了解 初始化服務端servesocketchannel 連線...
使用NIO實現乙個echo伺服器
乙個簡單的echo伺服器,客戶端向服務端傳送訊息,服務端進行響應,當客戶端傳送quit字串時,斷開客戶端和服務端的連線。使用nio實現 服務端 public class echoserver nio catch exception e public static void main string a...
乙個NIO例子
例子完成的功能是,客戶端傳送命令time到服務端,服務端返回當前時間給客戶端。服務端邏輯 public class multiplexertimeserverhandler implements runnable catch ioexception e public void stop public...