winsock函式簡介

2021-04-20 13:20:58 字數 3064 閱讀 8097

1、wsastartup函式

用於初始化winsock

[宣告]

nt wsastarup(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函式

把好象"***.***.***.***"的10進製的ip位址轉換為32位整數表示方法

[宣告]

unsigned long inet_addr ( const char far *cp );

[引數]

cp - 指向用"***.***.***.***"的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 中該引數可以忽略,通常賦予nill值

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

winsock 函式簡介

1 wsastartup函式 用於初始化winsock 宣告 int wsastarup word wversionrequested,lpwsadata lpwsadata 引數 wversionrequested 要求使用winsock的最低版本號 lpwsadata winsock的詳細資料 ...

winsock 函式宣告大全

一 基本socket函式 1.accept 響應連線請求,並且新建乙個套接字,原來的套介面返回監聽狀態 accept s tsocket addr psockaddr addrlen pinteger tsocket stdcall 2.bind 把乙個本地的名字和無名的套接字 起來 bind s ...

Winsock系列函式 及 Socket通訊流程

socket是一種網路通訊機制 winsock系列函式 1.socket 建立socket 2.connect 嘗試連線遠端socket 3.send 在某個socket 向遠端傳送資料 4.recv 接收遠端資料 5.closesocket 關閉連線 6.listen 在某個socket上建立監聽...