簡介:
-------
Windows 的Socket函數有許多, 我沒有做詳細介紹, 這裡的函數都是簡要說明其用途, 詳細用法請參考MSDN.
這裡的主要目的是為了後面的三個應用服務.
函數說明:
---------
WSAStartup函數
初始化Winsock
[聲明]
int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);
[參數]
wVersionRequested - 要求使用Winsock的最低版本號
lpWSAData - Winsock的詳細資料
[返回值]
當函數成功調用時返回0
失敗時返回非0的值
---
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.
---
inet_addr函數
地址轉換, 把"A.B.C.D"的IP地址轉換為32位長整數
[聲明]
unsigned long inet_addr ( const char FAR *cp );
[參數]
cp - 指向IP地址字符串的指針
[返回值]
當函數成功調用時返回用32位整數表示的IP地址
失敗時返回INADDR_NONE.
---
gethostbyname函數
從主機名獲取主機信息.
[聲明]
struct hostent FAR * gethostbyname ( const char FAR *name );
[參數]
name - 指向主機名字符串的指針
[返回值]
當函數成功調用時返回主機信息
失敗時返回NULL(空值)
---
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
---
sendto函數
發送數據.
[聲明]
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