linux下socket和window下區別

2021-04-20 05:02:21 字數 1118 閱讀 9873

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()

3、多執行緒

多執行緒: (win)process.h --〉(linux)pthread.h

_beginthread --> pthread_create

_endthread --> pthread_exit

Windows和Linux下socket的區別

1.標頭檔案 windows下winsock.h或winsock2.h linux下netinet in.h 大部分都在這兒 unistd.h close函式在這兒 sys socket.h 在in.h裡已經包含了,可以省了 2.初始化 windows下需要用wsastartup啟動ws2 32.l...

windows和linux下socket程式設計的不同

windows windows 標頭檔案的區別 include include windows 初始化的區別 windows 宣告socket socket型別 windows socket關閉 closesocket windows socket操作錯誤返回值 socket error windo...

linux下socket程式設計

一 什麼是socket socket可以看成是使用者程序與核心網路協議棧的程式設計介面。socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。socket api是一層抽象的網路程式設計介面,適用於各種底層網路協議,如ipv4 ipv6。struct sockaddr in...