/******************************************************************** 更新日期:2017-11-07 10:33:08* 进度:完成* 作者:LuoTian* 备注:*******************************************************************/
WSAStartup()是套接字编程调用的第一个函数
int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData);
wVersionReauested:指定加载的winsock版本号,可以通过MAKEWORD(X,Y)来指定,其中X是高字节,Y是低字节。高字节为副版本号, 低字节为主版本号。
lpWSAData:指向LPWSADATA结构的指针,该参数返回最终加载动态库的相关信息。
结构形式为:
typedef struct WSAData { WORD wVersion; WORD wHighVersion; char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo;} WSADATA, FAR * LPWSADATA;
一个完整的示例程序,功能:查看DLL是否支持2.2(应用程序只支持2.2,否则退出)
#include "winsock2.h"#pragma comment(lib,"WS2_32.lib")WORD wVersion;WSADATA wsaData;int main(){ int nErrCode; wVersion=MAKEWORD(2,2); nErrCode=WSAStartup(wVersion,&wsaData); if(nErrCode!=0) { return 0; } if(LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion)!=2) { WSACleanup(); return 0; } return 0;}
WSAStartup成功返回0,失败返回非0.