winsock库

时间:2021-12-01 04:47:44

加载Winsock库函数 : WSAStartup

1 int WSAStartup( 2 WORD wVersionRequested,//指定想要加载的winsock库 3 LPWSADATA lpWSAData//指向 WSADATA的指针,用来返回DLL库的详细信息 4 );

WSADat头结构

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库,应该包含对应的库文件

1 #pragma comment(lib,"WS2_32")

以后封装的经常用到的CInitSock类

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 };