TCP多人聊天室實現簡單思路

2021-10-04 04:43:25 字數 1102 閱讀 8105

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...