Socket相關程序:從Windows移植到Linux

作者:天新網 【轉載】 天新網 2009年03月24日 18:46




  socket相關程序從Windows移植到Linux下需要注意的

  1)頭文件

  windows下winsock.h/winsock2.h

  linux下sys/socket.h

  錯誤處理:errno.h

  2)初始化

  windows下需要用WSAStartup

  linux下不需要

  3)關閉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)設置非阻塞

  windows下ioctlsocket()

  linux下fcntl()

  7)send函數最後一個參數

  windows下一般設置爲0

  linux下最好設置爲MSG_NOSIGNAL,如果不設置,在發送出錯後有可 能會導致程序退出。

  8)毫秒級時間獲取

  windows下GetTickCount()

  linux下gettimeofday()

  多線程

  多線程: (win)process.h --〉(linux)pthread.h

  _beginthread --> pthread_create

  _endthread --> pthread_exit

  

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