基於C/S架構的聊天系統的實現

主要思路:

文件地址:http://download.csdn.net/detail/sun_ru/9646770

結構:

客戶端 服務器 mysql服務器

客戶端與服務器之間的描述如下圖:


服務器與mysql之間的描述如下圖:



服務器的邏輯機制


1.通過協議類組合註冊實現主要功能

主要類:Register_base   用於協議註冊

協議類的父類:Packet_base 用於協議類繼承

緩衝區類:Area_Buffer 用於數據包的檢查

協議類:

註冊類:Register_Logic

登錄類:Login_Logic

添加好友:Add_Logic

查找好友:Find_Logic

刪除好友:Del_Logic

聊天類:Talk_Logic

發送文件:File_Logic

退出類:Out_Logic

邏輯處理類:

Logic

靜態類:Static_Variable 用於保存對象


以聊天功能爲例主要思路如下:

1,在自己客戶端找到自己所擁有的好友賬號爲:123,寫一句話點擊發送按鈕

2,點擊發送按鈕後 把自身的聊天信息包括Id,friendid,內容,通過聊天類:Talk_Logic 的encode函數進行打包,得到包含聊天信息的byte數組

3,然後把數組通過客戶端的對象傳到發送線程的隊列中,然後發送給服務器

4,服務器通過解包函數,得到相應的處理協議,然後把數據包給邏輯處理類:Logic

5,邏輯處理類通過協議ID找到相應的協議類,然後再調用協議類的process函數進行處理

6,當聊天的數據包走到Talk_Logic的process函數時,進行解包然後查找好友ID是否在線

7,若好友在線則把數據包通過好友的Socket發送給好友

8,若好友不在線則調用mysql的Send函數把數據包相關內容發送給mysql服務器,進行離線信息的存儲

發佈了54 篇原創文章 · 獲贊 36 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章