前幾天有個朋友,說他們公司做手游,服務端用的DIOCP3裡面做文件服務器,客戶端用cocos-x,在調試與diocp通信時老是失敗!
於是,我下載了一個Codeblocks經過幾個小時的折騰,終於折騰出來了,把其中的一些心酸記錄下,以便以後查閱。
1.windows下面使用socket的一些函數時,需要設置工程的選項或者工具的編譯選項
[project –> build options]->[linker settings]或者[setting]->[complier]->Linker settings]中添加
F:\Tools\C\CodeBlocks\MinGW\lib\*.a 到 [link libraries]中
要不然會出現編譯錯誤
undefined reference to `WSAStartup@8'
2.關於c中的extern和static
百度上面有比較多的解釋,
extern 表示修飾的函數或者變量是從其他文件中引用。(extern告訴編譯器這個變量或者函數在其他文件裡已經被定義了)
static 表示修飾的函數或者變量只能在本文件中使用。static還可以修飾局部變量,表示局部變量在退出函數後,該變量不可用,但是再次進入到函數時,該變量會保存之前的值。
下面為調試的截圖
上面截圖說明與服務器進行了一次通信,服務器接收特定的編碼格式(Flag + CheckValue + datalen + data)
發送過去後,服務端會進行編碼原樣返回。
總結:
接觸一門其他語言,需要多去寫代碼,只有在寫的過程當中才會去碰到問題,解決問題,積累被坑的經驗。思路和想法有了,剩下的就是多被坑點就好了