winsock.h

Winsock.h是用於winsock的頭檔案,裡面有多種函式可以幫助使用Winsock

函式

1、WSAStartup函式

用於初始化Winsock

聲明

int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);

[參數]

wVersionRequested - 要求使用Winsock的最低版本號

lpWSAData - Winsock的詳細資訊

[返回值]

當函式成功調用時返回0

失敗時返回非0的值

2、socket函式

用於生成socket(soket Descriptor)

[聲明]

SOCKET socket(int af,int type,int protocol);

[參數]

af - 地址家族(通常使用:AF_INET)

type - socket的種類

SOCK_STREAM : 用於TCP協定

SOCK_DGRAM : 用於UDP協定

protocol - 所使用的協定

[返回值]

當函式成功調用時返回一個新的SOCKET(Socket Descriptor)

失敗時返回INVALID_SOCKET.

3、inet_addr函式

把形似"xxx.xxx.xxx.xxx"的10進制的IP位址轉換為4位元組整數表示的方法

[聲明]

unsigned long inet_addr ( const char FAR *cp );

[參數]

cp - 指向用"xxx.xxx.xxx.xxx"的10進制來表示的IP位址字元串的指針

[返回值]

當函式成功調用時返回用32位整數表示的IP位址(按網路位元組排列順序)

失敗時返回INADDR_NONE.

4、gethostbyname函式

可以從主機名獲取主機資料.

[聲明]

struct hostent FAR * gethostbyname ( const char FAR *name );

[參數]

name - 指向主機名字元串的指針

[返回值]

當函式成功調用時返回主機信息

失敗時返回NULL(空值)

5、Bind函式

指定本地IP位址所使用的連線埠號時候使用

[聲明]

int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );

[參數]

s - 指向用Socket函式生成的Socket Descriptor

addr - 指向Socket地址的指針

namelen - 該地址的長度.

[返回值]

當函式成功調用時返回0

調用失敗時返回 SOCKET_ERROR

6、connect函式

用於與伺服器建立連線,發出連線請求,必須在參數中指定伺服器的IP位址和連線埠號

[聲明]

int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );

[參數]

s - 指向用Socket函式生成的Socket Descriptor

name - 指向伺服器地址的指針

namelen - 該地址的長度.

[返回值]

當函式成功調用時返回0

調用失敗時返回 SOCKET_ERROR

7、select函式

可以用於調查一個或多個SOCKET的狀態.

[聲明]

int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );

[參數]

nfds - 在WINDOWS SOCKET API 中該參數可以忽略,通常賦予NULL值

readfds - 由於接受的SOCKET設備的指針

writefds - 用於傳送數據的SOCKET設備的指針

exceptfds - 檢查錯誤的狀態

timeout - 逾時設定

[返回值]

返回大於0的值時,表示與條件相符的SOCKET數

返回0表示逾時

失敗時返回SOCKET_ERROR

8、recv函式

利用Socket進行接受數據.

[聲明]

int recv ( SOCKET s , char FAR *buf , int len , int flags );

[參數]

s - 指向用Socket函式生成的Socket Descriptor

buf - 接受數據的緩衝區(數組)的指針

len - 緩衝區的大小

flag - 調用方式(MSG_PEEK 或 MSG_OOB)

[返回值]

成功時返回收到的位元組數.

如果連線被中斷則返回0

失敗時返回 SOCKET_ERROR

9、sendto函式

利用Socket進行傳送數據.

[聲明]

int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );

[參數]

s - 指向用Socket函式生成的Socket Descriptor

buf - 接受數據的緩衝區(數組)的指針

len - 緩衝區的大小

flag - 調用方式(MSG_DONTROUTE , MSG_OOB)

to - 指向傳送方SOCKET地址的指針

token - 傳送方SOCKET地址的大小

[返回值]

成功時返回已經傳送的位元組數.

失敗時返回SOCKET_ERROR

相關詞條

熱門詞條

聯絡我們