歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

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

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

Copyright © Linux教程網 All Rights Reserved