加載Winsock庫函數 : WSAStartup函數
1 int WSAStartup( 2 WORD wVersionRequested,//指定想要加載的winsock庫 3 LPWSADATA lpWSAData//指向 WSADATA的指針,用來返回DLL庫的詳細信息 4 );
WSADat頭結構spa
1 typedef struct WSAData 2 { 3 WORD wVersion; //庫文件建議應用程序使用的版本 4 WORD wHighVersion; //庫文件支持的最高版本 5 char szDescription[WSADESCRIPTION_LEN+1]; //庫描述字符串 6 char szSystemStatus[WSASYS_STATUS_LEN+1]; //系統狀態字符串 7 unsigned short iMaxSockets; //同時支持的最大套接字的數量 8 unsigned short iMaxUdpDg; //2.0版中已廢棄的參數 9 char FAR* lpVendorInfo; //已廢棄的參數 10 }WSADATA,FAR* LOWSADATA;
每個WSAStart調用必須對應一個隊WSAClean的調用,這個函數用來釋放winsock庫指針
int WSACleanup(void);
若是想使用winsock庫,應該包含對應的庫文件code
1 #pragma comment(lib,"WS2_32")
之後封裝的常常用到的CInitSock類blog
1 #include <winsock2.h> 2 #pragma comment(lib,"WS2_32") 3 class CInitSock 4 { 5 public: 6 CInitSock(BYTE minorVer=2,BYTE majorVer=2) 7 { 8 WSADATA wsaData; 9 WORD sockVersion = MAKEWORD(minorVer,majorVer); 10 if(::WSAStartup(sockVersion,&wsaData)!=0) 11 { 12 exit(0); 13 } 14 } 15 ~CInitSock() 16 { 17 ::WSACleanup(); 18 } 19 };