例項要求:
編寫乙個 nio 群聊系統,實現伺服器端和客戶端之間的資料非阻塞簡單通訊
實現多人群聊,單人群聊
伺服器端:可以監測使用者上線,離線,並實現訊息**功能
客戶端:通過channel可以無阻塞傳送訊息給其它所有使用者,同時可以接受其它使用者傳送的訊息(有伺服器**得到)
public
class
groupchatserver
private
void
listen()
throws ioexception
if(key.
isreadable()
)//當前的key 刪除,防止重複處理
iterator.
remove()
;}}else}}
private
void
readdata
(selectionkey key)
}catch
(ioexception e)
catch
(ioexception e2)}}
private
void
sendmsgtootherclients
(string msg, socketchannel clientself)
throws ioexception }}
public
static
void
main
(string[
] args)
throws ioexception
}
public
class
groupchatclient
private
void
sendmsg
(string msg)
throws ioexception
private
void
readmsg()
throws ioexception
} iterator.
remove()
;}}public
static
void
main
(string[
] args)
throws ioexception
catch
(exception e)}}
}.start()
;//傳送資料給伺服器端
scanner scanner =
newscanner
(system.in)
;while
(scanner.
hasnextline()
)}}
詳解NIO如何實現群聊?
構建selector以及服務端監聽 通道啟動監聽並處理建立連線請求 處理讀資料 資料 實現客戶端測試 服務端的主要功能如下 1.開放監聽埠,方法chatserver構造方法 2.處理鏈結請求,方法listener實現連線的建立 3.讀取訊息內容,方法readdata 當chatserver物件被建立...
NIO 入門例項
1.2.4 入門示例 1.2.4.1 服務端 流程 建立serversocketchannel 非阻塞 繫結埠 serversocketchannel serversocketchannel serversocketchannel.open serversocketchannel.configure...
NIO簡單應用
public class fileniocopydemo 複製兩個資源目錄下的檔案 private static void niocopyresourcefile private static void niocopyfile string sourcepath,string destpath lo...