Socket程式從Win移植到Linux

來源:互聯網
上載者:User

 socket程式從win移植到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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.