一、整體介紹
(1)client模組:暢聊系統client上層邏輯,提供client底層通訊
(2)server模組:暢聊系統server上層邏輯,提供server底層通訊service_com模組:
(3)暢聊系統底層公共邏輯,如資料序列化。
(4)window模組:client視窗模組
(5)lib第三方庫模組:提供第三方庫模組
(6)plug外掛程式起停服務指令碼模組:起停服務指令碼
二、詳細解析
(1)client模組 && server模組
基於udp協議,完成基本的資料報傳送,該模組統⼀一傳送string,不對資料進⾏行任何解釋。具體資料報的字段解析,由上層完成。
(2)service_com模組
基於jsoncpp,提供基本資料序列化和反序列化功能,以及提供各種server和client公共部分模組。
(3)window模組
基於ncurse/ncursew, 提供client窗⼜⼝口功能,
三、使⽤用的開源/系統庫
1. jsoncpp:基於c++編寫的json庫,提供資料的序列化和反序列化功能
2. ncurse/ncursew:可以使應⽤用程式直接控制終端螢幕顯⽰示的庫,本項⽬目中,該庫為我們提供基本的窗⼜⼝口界⾯面。
3. pthread:linux系統下的多執行緒遵循posix執行緒接⼜⼝口,稱為pthread,本項⽬目中,我們使⽤用該庫提供基本的執行緒控制功能。
四、專案的整體結構
五、執行結果:
一、首先啟動./build.sh來進行make
二、啟動server端(cd /output/server)
此處ctrl_server.sh是乙個控制指令碼,可以控**務器開啟。
三、啟動client端(cd /output/client)
此時頁面顯示如下(ncurse庫實現):
依照提示自行輸入nick_name和school
而後輸入聊天資訊如下圖:
此程式的缺陷是只能實現乙個使用者顯示全域性訊息,其餘只能參與聊天,不能實現兩個使用者直接的單獨聊天
此布局中上部分是header資訊,顯示歡迎訊息,中間左側是輸出區域,右側是好友列表(採用了分頁進製),最下面是輸入區域。
客服聊天系統,WeLive客服聊天系統
下面對welive的安裝及使用方式進行介紹 在html檔案中的或之間插入上面一行 網頁就能呼叫客服小面板.注意 上面的檔案位址為絕對位址,當然也可以使用相對位址,但如果您不知道當前html檔案和welive.php的相對關係,那麼使用絕對位址將更為簡單方便.b.php檔案中呼叫 在任何php 段新增...
Linux下基於TCP的聊天室
能夠實現簡單的多人聊天和私聊 伺服器接收來自客戶端的連線請求,當有客戶端傳送過來資料時,伺服器將資料儲存到全域性緩衝區,並將資料迴圈傳送給已經連線的客戶端 不解釋直接上 伺服器 include include include include include include include inclu...
基於Linux的聊天小程式,前期總結
到目前為止,小小專案大改了兩次。第一次實現了點對點的聊天,使用tcp套接字實現。第二次在第一次的基礎上實現了多執行緒處理聊天事件,通過執行緒同步實現。我把部分核心 貼出來,供大家交流。總 量上千,全部貼出來不方便。客戶端和服務端都只分享主函式和執行緒函式。server void recvandsen...