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