主要思路:
文件地址: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服務器,進行離線信息的存儲