windows 網(wǎng)絡(luò)編程相關(guān)移植

參考鏈接:

相關(guān)記錄

  1. 相關(guān)頭文件
    #include <arpa/inet.h>

  2. fctl
    <code>//return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK);
    int flag = 1;
    return ioctlsocket(fd, FIONBIO, (unsigned long *)&flag);
    </code>

  3. 線程相關(guān)
    unix:
    #include <pthread.h>
    windows:
    #include <process.h>

信號量:
unix:
sem_t
sem_init();
sem_wait();
sem_post();

windows:
Handle
CreateSemaphore();
WaitForSingleObject();
ReleaseSemaphore();

線程庫:
http://blog.csdn.net/yuyu2223/article/details/7632252

  1. sys/time
    windows沒有相關(guān)頭部;相關(guān)time 為winsock2.h疆拘;
    gettimeofday 需要自己重新寫啰脚,windows未提供相關(guān)實現(xiàn)氏涩;
    linux sleep函數(shù)單位為1s;windows Sleep為 1ms;

5.socket
1)頭文件  windows下winsock.h/winsock2.h  linux下sys/socket.h  錯誤處理:errno.h  
2)初始化  windows下需要用WSAStartup  linux下不需要  
3)關(guān)閉socket  windows下closesocket(...)  linux下close(...)  
4)類型  windows下SOCKET  linux下int  如我用到的一些宏:  #ifdef WIN32  typedef int socklen_t;  typedef int ssize_t;  #endif  #ifdef LINUX  typedef int SOCKET;  typedef unsigned char BYTE;  typedef unsigned long DWORD;  #define FALSE 0  #define SOCKET_ERROR (-1)  #endif  
5)獲取錯誤碼  windows下getlasterror()/WSAGetLastError()  linux下errno變量  
6)設(shè)置非阻塞  windows下ioctlsocket()  linux下fcntl() <fcntl.h>  
7)send函數(shù)最后一個參數(shù)  windows下一般設(shè)置為0  linux下最好設(shè)置為MSG_NOSIGNAL唧领,如果不設(shè)置处嫌,在發(fā)送出錯后有可 能會導致程序退出而涉”颗瘢  
8)毫秒級時間獲取  windows下GetTickCount()  linux下gettimeofday()

其他細節(jié)

  1. windows.h先于winsock2.h
    包含順序不同 會造成很多error

  2. windows 不支持strsep,用strok替換瞳秽;

3.\ #define inline __inline

  1. 不同類型的基類 -- 重復定義錯誤;
    a)很有可能是強制類型轉(zhuǎn)換出現(xiàn)問題率翅,gcc c編譯不會出現(xiàn)類似問題练俐,但是vs2013 c++編譯器會報出該類問題;
    b)與庫文件同名
    c)未在調(diào)用前申明冕臭;

  2. random()只能在gcc環(huán)境腺晾;
    windows使用 srand 產(chǎn)生種子,然后使用rand()函數(shù)

  3. snprintf --- sprintf_s

#define strcasecmp stricmp
#define strncasecmp strnicmp

  1. LNK2005: ___xi_z 已經(jīng)在 MSVCRTD.lib(cinitexe.obj) 中定義
    鏈接器->輸入->忽略特定庫: libcmt.lib

  2. 推薦使用函數(shù) error(比如 sprintf 編譯報錯辜贵,需要使用 sprintf_s) 去掉error:
    項目屬性-->配置屬性-->C/C++-->命令行 其他選項: /D _CRT_SECURE_NO_WARNINGS

  3. [無法啟動此程序悯蝉,因為計算機中丟失pthreadVC2.dll]
    64位系統(tǒng)應將pthreadVC2.dll復制到C:\Windows\SysWOW64中

  4. 無法查找或打開 PDB 文件
    http://jingyan.baidu.com/article/90bc8fc87fbafff653640ca6.html

  5. 網(wǎng)絡(luò)請求異步 connect 返回-1 errno 為 EINPROGRESS
    windows 需要查找網(wǎng)絡(luò)錯誤狀態(tài),并判斷 類型

  6. windows socket 不能使用write 和 read

  7. vs2013引入調(diào)用堆棧功能托慨;
    調(diào)試--》窗口--》調(diào)用堆棧
    點擊debug,然后程序asset 點擊重試鼻由,點擊ok 就會有調(diào)用堆棧;

  8. libevnet event_base_dispatch 異常退出
    查找原因:
    猜想一:其他libevent 導致厚棵;修改其他libevent 為同步蕉世,還是會觸發(fā)該問題;所以并不是其他libevent
    猜想二:libevent本身退出機制有問題或者刪除事件有問題婆硬;

  9. libevent 一直有 妄妄妄妄妄... 輸出
    recv buf 初始值都是 妄.... 輸出有問題 沒初始化導致

17.vs2013寫文件 權(quán)限不夠
修改文件夾安全選項

  1. libevent 有問題狠轻;定時器不會觸發(fā)(proxy主線程),事件不觸發(fā)(控制線程)

19.post add event 有問題 暫不知哪里問題彬犯; 并不是 其他線程觸發(fā)post問題向楼; read local file導致問題,去掉read localfile

  1. now 為 負

  2. peer addr 為0 解決谐区;

  3. session is closed! transmit_alc2tcp

臨時調(diào)整湖蜕,now 修改為unsigned
判斷session closed 地方注釋掉

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卢佣,隨后出現(xiàn)的幾起案子重荠,更是在濱河造成了極大的恐慌,老刑警劉巖虚茶,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戈鲁,死亡現(xiàn)場離奇詭異,居然都是意外死亡嘹叫,警方通過查閱死者的電腦和手機婆殿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罩扇,“玉大人婆芦,你說我怎么就攤上這事怕磨。” “怎么了消约?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵肠鲫,是天一觀的道長。 經(jīng)常有香客問我或粮,道長导饲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任氯材,我火速辦了婚禮渣锦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氢哮。我一直安慰自己袋毙,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布冗尤。 她就那樣靜靜地躺著听盖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪生闲。 梳的紋絲不亂的頭發(fā)上媳溺,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音碍讯,去河邊找鬼。 笑死扯躺,一個胖子當著我的面吹牛捉兴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播录语,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼倍啥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了澎埠?” 一聲冷哼從身側(cè)響起虽缕,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒲稳,沒想到半個月后氮趋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡江耀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年剩胁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祥国。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡昵观,死狀恐怖晾腔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啊犬,我是刑警寧澤灼擂,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站觉至,受9級特大地震影響剔应,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜康谆,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一领斥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沃暗,春花似錦月洛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惜辑,卻和暖如春唬涧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盛撑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工碎节, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抵卫。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓狮荔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親介粘。 傳聞我的和親對象是個殘疾皇子殖氏,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容