1、WSAStartup函數(shù)
用于初始化Winsock
[聲明]
int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);
[參數(shù)]
wVersionRequested - 要求使用Winsock的最低版本號
lpWSAData - Winsock的詳細(xì)資料
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回0
失敗時返回非0的值
2、socket函數(shù)
用于生成socket(soket Descriptor)
[聲明]
SOCKET socket(int af,int type,int protocol);
[參數(shù)]
af - 地址家族(通常使用:AF_INET)
type - socket的種類
SOCK_STREAM : 用于TCP協(xié)議
SOCK_DGRAM : 用于UDP協(xié)議
protocol - 所使用的協(xié)議
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回一個新的SOCKET(Socket Descriptor)
失敗時返回INVALID_SOCKET.
3、inet_addr函數(shù)
把好象"xxx.xxx.xxx.xxx"的10進(jìn)制的IP地址轉(zhuǎn)換為32位整數(shù)表示方法
[聲明]
unsigned long inet_addr ( const char FAR *cp );
[參數(shù)]
cp - 指向用"xxx.xxx.xxx.xxx"的10進(jìn)制來表示的IP地址字符串的指針
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回用32位整數(shù)表示的IP地址(按網(wǎng)絡(luò)字節(jié)排列順序)
失敗時返回INADDR_NONE.
4、gethostbyname函數(shù)
可以從主機(jī)名獲取主機(jī)資料.
[聲明]
struct hostent FAR * gethostbyname ( const char FAR *name );
[參數(shù)]
name - 指向主機(jī)名字符串的指針
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回主機(jī)信息
失敗時返回NULL(空值)
5、Bind函數(shù)
指定本地IP地址所使用的端口號時候使用
[聲明]
int bind ( SOCKET s , const struct sockaddr FAR *addr , int namelen );
[參數(shù)]
s - 指向用Socket函數(shù)生成的Socket Descriptor
addr - 指向Socket地址的指針
namelen - 該地址的長度.
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回0
調(diào)用失敗時返回 SOCKET_ERROR
6、connect函數(shù)
用于與服務(wù)器建立連接,發(fā)出連接請求,必須在參數(shù)中指定服務(wù)器的IP地址和端口號
[聲明]
int connect (SOCKET s , const struct sockaddr FAR *name , int namelen );
[參數(shù)]
s - 指向用Socket函數(shù)生成的Socket Descriptor
name - 指向服務(wù)器地址的指針
namelen - 該地址的長度.
[返回值]
當(dāng)函數(shù)成功調(diào)用時返回0
調(diào)用失敗時返回 SOCKET_ERROR
7、select函數(shù)
可以用于調(diào)查一個或多個SOCKET的狀態(tài).
[聲明]
int select ( int nfds , fd_set FAR *readfds , fd_set FAR *writefds , fd_set FAR *exceptfds , const struct timeval FAR *timeout );
[參數(shù)]
nfds - 在WINDOWS SOCKET API 中該參數(shù)可以忽略,通常賦予NILL值
readfds - 由于接受的SOCKET設(shè)備的指針
writefds - 用于發(fā)送數(shù)據(jù)的SOCKET設(shè)備的指針
exceptfds - 檢查錯誤的狀態(tài)
timeout - 超時設(shè)定
[返回值]
返回大于0的值時,表示與條件相符的SOCKET數(shù)
返回0表示超時
失敗時返回SOCKET_ERROR
8、recv函數(shù)
利用Socket進(jìn)行接受數(shù)據(jù).
[聲明]
int recv ( SOCKET s , char FAR *buf , int len , int flags );
[參數(shù)]
s - 指向用Socket函數(shù)生成的Socket Descriptor
buf - 接受數(shù)據(jù)的緩沖區(qū)(數(shù)組)的指針
len - 緩沖區(qū)的大小
flag - 調(diào)用方式(MSG_PEEK 或 MSG_OOB)
[返回值]
成功時返回收到的字節(jié)數(shù).
如果連接被中斷則返回0
失敗時返回 SOCKET_ERROR
9、sendto函數(shù)
利用Socket進(jìn)行發(fā)送數(shù)據(jù).
[聲明]
int sendto ( SOCKET s , const char FAR *buf , int len , int flags , const struct sockaddr FAR *to , int token );
[參數(shù)]
s - 指向用Socket函數(shù)生成的Socket Descriptor
buf - 接受數(shù)據(jù)的緩沖區(qū)(數(shù)組)的指針
len - 緩沖區(qū)的大小
flag - 調(diào)用方式(MSG_DONTROUTE , MSG_OOB)
to - 指向發(fā)送方SOCKET地址的指針
token - 發(fā)送方SOCKET地址的大小
[返回值]
成功時返回已經(jīng)發(fā)送的字節(jié)數(shù).
失敗時返回SOCKET_ERROR