/*******************************************************************
* 更新日期: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.