項目就要作到聯網了, 選擇了用curl庫來完成聯網部分,網上看了下curl使用,要是簡單的聯下網,測測數據什麼的,仍是挺簡單的,但要用到遊戲裏面,那就有必要進一步的封裝了。html
因爲C++這塊還不是很熟悉,要完成這個工做估計要點時間。node
------------------------------------------------------------------------------android
由於以前的項目還有點工做要作,因此耽誤了點時間。c++
新項目要解決聯網和數據解析的問題了,目前決定用curl來解決聯網,傳送的數據用json,客戶端用libjson來完成數據解析。json
首先來解決聯網的問題,cocos2dx自帶了curl庫,使用起來很方便。在win32上直接把頭文件curl.h引進來就能夠了(注意路徑),在android下用還要在android.mk文件把curl庫添加進來,具體能夠參考tests例子。數組
接下來怎麼用curl來鏈接後臺?curl
具體能夠看看這個連接:http://blog.csdn.net/jgood/article/details/4787670,(中文的)post
還有就是 curl自帶文檔:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html (英文的)url
因爲我也是剛剛開始用curl,不少用法都不是很熟悉,只是簡單的使用了get和post兩種方法和後臺交互。.net
折騰了幾個鍾,終於順利的從後臺拿到了數據,只是從win32移植到android的時候,遇到的問題,第一個就是添加curl 庫時,剛纔是不知道怎麼添加,後來纔想起tests裏面有用到curl,因而就把方法照搬過來. 可是仍是拿不到數據,還要把android聯網的權限打開。到此android上也能順利拿到數據了。
聯網解決了,下面就是數據解析了。
先是在網上查找和cocos2dx c++ json有關的資料,能夠看看這個連接:http://blog.csdn.net/onerain88/article/details/7595563,而後實際操做了,先把libjson庫解壓,把源文件libjson.h.JSONOptions.h 和文件夾Source拷貝到cocos2dx的工程的Class目錄下,在JSONOptions.h有些宏須要注意。一個就是: #define JSON_LIBRARY 這個規定libjson用的是c語言,把它註釋了就變成用C++了,具體就看我的喜歡了。還有其餘一些宏聲明是debug版的仍是nodebug的,具體仍是看看源文件吧。按照libjson教程成功把json字符串解析了出來,其中解析json數組時廢了點時間,要用到遍歷每一個數組元素,而後存到一個c++的數組裏面。到此win32下聯網和數據解析均可以了。當把libjson移植到android時,也遇到的點問題。首先是編譯問題,用NDK編譯libjson時,須要把C++的異常捕獲打開,在android.mk文件加上LOCAL_CPPFLAGS += -fexceptions這句,就這個問題糾結了一段時間。
好,如今win32和android下都能聯網和解析數據了。
ps: 寫這個主要是記錄一下。