1.1 分析
客戶端
功能:1. 資料傳送
2. 資料接收
技術:1. socket
2. 輸入流和輸出流
3. 多執行緒,客戶端功能模組有兩個執行緒
聊天:1. 群聊
2. 私聊
私聊字首 @伺服器使用者id號:msg
伺服器功能:
1. 資料**
2. 使用者註冊
技術:1. serversocket
2. 每乙個使用者對應的sokcet物件
4. hashmap1.2 客戶端實現資料傳送:
使用輸出流傳送資料給伺服器
遵從runnable介面
資料接收:
使用輸入流從伺服器端接收資料
遵從runnable介面
客戶端主方法:
使用者名稱提交
資料傳送
資料接收
多執行緒啟動
1.3 資源關閉問題**中操作了大量的輸入流和輸出流,這裡都需要進行關閉操作。
datainputstream, dataoutputstream, bufferedreader, socket
以上這些資源都是closeable介面的實現類,都有對應的close方法
封裝乙個工具類:
提供乙個closeall方法,引數為符合closeable介面的實現類物件。
這裡可以考慮可變長引數
closeable... closeable
可變長引數在方法中使用的過程裡面是對應乙個陣列,這裡完成可以使用增強for來使用
工具類名:
closeutil
public static void closeall(closeable... closeable)
1.4 功能拓展1. 使用者退出
使用者輸入指定字段之後可以退出
客戶端socket服務
服務端socket服務
涉及資源關閉,執行緒關閉
2. 使用者異常退出
在執行過程中發現問題,需要及時處理,關閉對應的資源,終止對應的執行緒
3. 伺服器儲存所有的聊天記錄
多人聊天室的實現思路分析
複習完關於通訊的知識點後,我們要動手完成乙個 多人聊天室 的小專案練習,這個專案涉及到了通訊,執行緒,事件監聽和圖形的程式設計的相關概念,乍一聽上去覺得很容易,不就是加個圖形介面嗎?後來實現的時候發現不是這樣,發現幾乎寸步難行,有點焦急,但是急也沒用,程式這個東西是需要人靜下心來思考才好得到結果的....
Python簡單多人聊天室
伺服器端 auther kele 匯入socket包 import socket,threading 建立乙個socket物件 server socket.socket socket.af inet,socket.sock stream 獲取本地ip host socket.gethostname ...
簡單的多人聊天室
1.安裝nodejs websocket 和 socket.io npm install nodejs websocket socket.io 2.html 中引入socket.io.js檔案 在html中 通過 socket io ws localhost 3000 開啟socket連線,通過so...