WSAStartup()函数用法

来源:互联网 发布:mac口红russian red 编辑:程序博客网 时间:2024/04/26 05:55

使用Winsock库函数之前,必须先调用函数WSAStartup,该函数负责初始化动态连接库Ws2_32.dll.

函数定义:

int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );

wVersionRequested:[IN],是一个WORD(双字节)数值,它指定了应用程序需要使用的Winsock版本.
主版本号在 低字节, 次版本号在 高字节。
不关心版本问题:
使用常量 WINSOCK_VERSION 赋值给 wVersionRequested
, 常量在Winsock2.h中定义

实例:希望版本号为 1.2 可以如下代码:

wVersionRequested = 0x0201,或者 wVersionRequested = MAKEWORD(1,2)

MAKEWORD是一个宏定义主要由两个字节组成的WORD


lpWSAData:[OUT],指向WSADATA数据结构的指针,该结构用于返回本机的Winsock系统实现的信息.
该结构WhighVersion和wVersion两个域系统支持的最高版本,后者是系统希望调用者使用的版本.

函数成功 返回0; 否则返回错误码. 需要注意ws2_32.dll尚未初始化,是无法调用WSAGetLastError().int WSAGetLastError(void);

WSAStartup是任何使用Winsock的应用程序或者DLL首先必须调用Winsock库函数.
一方面它初始化 ws2_32.dll,另一方面他用于在应该程序DLL与系统Winsock库版本协商.
当要求的版本(Winsock的最高版本)等与或高于系统支持的最底版本(下限),那么该函数 操作成功 并且在WSADATA.WhighVersion中返回系统支持的最高版本,在WSADATA.wVersion中 返回系统支持的最高版(上限)和 wVersionRequested 之间的较小值。