WSADATA 结构 (winsock.h)
WSADATA 结构包含有关 Windows 套接字实现的信息。
语法
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#if ...
unsigned short iMaxSockets;
#if ...
unsigned short iMaxUdpDg;
#if ...
char *lpVendorInfo;
#if ...
char szDescription[WSADESCRIPTION_LEN + 1];
#if ...
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#else
char szDescription[WSADESCRIPTION_LEN + 1];
#endif
#else
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#endif
#else
unsigned short iMaxSockets;
#endif
#else
unsigned short iMaxUdpDg;
#endif
#else
char *lpVendorInfo;
#endif
} WSADATA;
成员
wVersion
类型: WORD
Ws2_32.dll 要求调用方使用的 Windows 套接字规范的版本。 高位字节指定次要版本号;低位字节指定主版本号。
wHighVersion
类型: WORD
Ws2_32.dll 可以支持的 Windows 套接字规范的最高版本。 高位字节指定次要版本号;低位字节指定主版本号。
当传递给 WSAStartup 函数的 wVersionRequested 参数中请求的版本是Ws2_32.dll可以支持的 Windows 套接字规范的最高版本时,此值与 wVersion 成员的值相同。
iMaxSockets
类型: 无符号短
可以打开的最大套接字数。 对于 Windows 套接字版本 2 及更高版本,应忽略此成员。
保留 iMaxSockets 成员是为了与 Windows 套接字规范 1.1 兼容,但在开发新应用程序时不应使用。 没有一个值可以适用于所有基础服务提供程序。 版本 2 中 Windows 套接字的体系结构已更改为支持多个提供程序, WSADATA 结构不再适用于单个供应商的堆栈。
iMaxUdpDg
类型: 无符号短
最大数据报消息大小。 对于 Windows 套接字版本 2 及更高版本,将忽略此成员。
保留 iMaxUdpDg 成员是为了与 Windows 套接字规范 1.1 兼容,但在开发新应用程序时不应使用。 版本 2 中 Windows 套接字的体系结构已更改为支持多个提供程序, WSADATA 结构不再适用于单个供应商的堆栈。 对于特定于特定 Windows 套接字服务提供程序和套接字类型的实际最大消息大小,应用程序应使用 getsockopt 在创建套接字后检索选项SO_MAX_MSG_SIZE的值。
lpVendorInfo
类型: char FAR*
指向供应商特定信息的指针。 对于 Windows 套接字版本 2 及更高版本,应忽略此成员。
保留 lpVendorInfo 成员是为了与 Windows 套接字规范 1.1 兼容。 版本 2 中 Windows 套接字的体系结构已更改为支持多个提供程序, WSADATA 结构不再适用于单个供应商的堆栈。 需要访问特定于供应商的配置信息的应用程序应使用 getsockopt 来检索特定于供应商的信息的选项PVD_CONFIG的值。
szDescription[WSADESCRIPTION_LEN + 1]
类型: char[WSADESCRIPTION_LEN+1]
以 NULL 结尾的 ASCII 字符串, Ws2_32.dll 将 Windows 套接字实现的说明复制到其中。 文本 (最多 256 个字符,) 可以包含除控制字符和格式字符以外的任何字符。 应用程序对此成员最可能的用途是将其显示 (状态消息中可能截断) 。
szSystemStatus[WSASYS_STATUS_LEN + 1]
类型: char[WSASYS_STATUS_LEN+1]
以 NULL 结尾的 ASCII 字符串, Ws2_32.dll 将相关状态或配置信息复制到其中。 仅当信息对用户或支持人员有用时, Ws2_32.dll 才应使用此参数。 不应将此成员视为 szDescription 参数的扩展。
注解
WSAStartup 函数通过进程启动 Windows 套接字 DLL 的使用。
WSAStartup 函数返回指向
lpWSAData 参数中的 WSADATA 结构。
在 的 wHighVersion 成员中返回的 Windows 套接字规范的当前版本
WSADATA 结构是 2.2 版,使用低字节中的主版本号和高字节中的次要版本号进行编码。 此版本的当前 Winsock DLL Ws2_32.dll支持请求以下任一版本的 Windows 套接字规范的应用程序:
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
示例
下面的示例演示如何使用 WSADATA 结构。
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}
/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}
/* The WinSock DLL is acceptable. Proceed. */
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | winsock.h (包括 Winsock2.h) |