構思了很久,現在基本的結構基本上確定下來了
採用udp,訊息佇列的模式
採用多個類的方式來實現,但是還不時完全的物件導向設計,其中最關的多型性,類的繼承都沒有用到,因為感覺技術還沒有到家,暫時利用幾個類進行簡單的包裝,打算下次的類**中完全實現物件導向的設計的優點---多型性,也就是使用虛函式來實現!
這個伺服器的基本流程是這樣的,採用雙線程來處理
伺服器流程圖如果下
接受到訊息然後然後廣播給所有的使用者
定義乙個結構體儲存客戶端的
ip位址和埠
採用udp
通訊**所有訊息並顯示於其它的客戶端中
客戶端下線或斷開連線傳送訊息給伺服器端,伺服器刪除其客戶端的節點
定義一下資料報結構
struct
recemessagedata
//接受資料報的結構
;struct
sendmessagedata
//傳送資料報的結構
;imessagetype==0
表示下線刪除其
socket
節點,imessagetype==1
表示上線
在socket
庫中追加新
socket
imessagetype==2
表示修改暱稱,根據其
socket
修改暱稱
imessagetype==3
imessagetype==4
表示**訊息
遍歷整個鍊錶
#ifndef online_chain_
#define online_chain_
#include
class socketonlinenode
;class conlinesocketchain
;#endif //online_chain_
為了實現大規模並行處理能力
在這裡要定義乙個訊息佇列的類
這個類的主要功能是儲存接收到的訊息,然後讓執行緒函式來處理來從這個類取出訊息並進行處理
#ifndef message_chain_
#define message_chain_
class queuenode
;class messagechain
;#endif // message_chain_
socket的初始化類
#ifndef base_socket_
#define base_socket_
#include
struct recemessagedata //接受資料報的結構
;class basesocket
#endif //base_socket_
本來還想寫乙個多執行緒處理的類,能力有限,下次寫改進的時候寫了吧
下面就正式coding了
多執行緒的聊天室的伺服器端
伺服器端的主要功能 實現多使用者群體聊天功能 此程式最多設定為10人,可進行更改 每個人所傳送的訊息其他使用者均可以收到。使用者可以隨意的加入或退出 推出以字串 bye 實現 伺服器也可以進行關閉。伺服器端的程式結構 總共有三個函式 主函式 main 實現伺服器端的初始化,接受連線 訊息處理函式 r...
Nodejs聊天室及靜態資源伺服器的實現
多人聊天伺服器 多人聊天客戶端 靜態資源伺服器 分割線 測試環境 node v v14.16.0 npm v 7.6.3需要mime包 mime可以識別檔案型別,方便網頁展示。安裝 lib chat server.js var net require net var clientlist 此處用字典...
聊天室 Python作為伺服器C 作為客戶端
1.有登入介面等各種介面 2.客戶端和伺服器能進行簡單通訊 3.群聊 聊天內容加密,名字 內容 4.一對一聊 給指定客戶端發訊息 5.登入 登入到已註冊資料庫 6.註冊 資料庫中新增使用者 7.資料庫 伺服器和資料庫互動,pymysql 連線到資料庫 8.新增好友 新增已經註冊使用者為好友 9.搜尋...