socket通信

步驟一:在TransactionModule中有業務請求時,檢查是否有連上服務器,沒有鏈接上則執行步驟二,如果鏈接狀態正常,則執行步驟三。
步驟二:創建Socket,鏈接服務器,如果鏈接成功,則執行步驟三,如果鏈接失敗則報錯,請求失敗,結束。
步驟三:發請求數據到服務器,判斷send返回狀態,如果小於0,執行步驟四,如果已發送長度等於發送長度,則執行步驟五,否則繼續執行步驟三再次發送剩餘數據(這裏沒有考慮等於0的狀態)
步驟四:返回了SOCKET_ERROR錯誤,關閉socket,重置鏈接狀態和創建Socket狀態,返回錯誤,請求失敗,結束。
步驟五:檢查接收線程是否啓動,如果線程正在運行,則執行步驟七,否則執行步驟六。
步驟六:創建線程,判斷停止標誌,循環執行接收數據函數(使用libevent的話,僅僅是執行dispatch),然後轉到步驟七,等待數據返回。
步驟七:等待服務器數據返回,阻塞狀態,如果有數據返回,則執行步驟八。

步驟八:當有數據到達時,判斷接收狀態,如果大於等於0,則執行步驟四,並設置線程終止標誌。否則把數據添加到公共緩衝區或者公共隊列(線程安全)中。

cocos2d-x scoket 解決方案

網上搜索的幾篇優秀的關於socket的文章


純c++版的
1. 跨平臺的遊戲客戶端Socket封裝
注意添加頭文件
#include
#include




cocos2d-x 擴展版的
2. 包含到cocos2d-x裏的tcpsocket源碼


coocs2dx 簡易封裝的
3. cocos2d-x 跨平臺Socket網絡模塊


cocos2d-x BSD版
4.  Cocos2d-x基於BSD Socket網絡通訊模塊


其他相關
5.  基於Socket的UDP和TCP編程介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章