Структура 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
Версия спецификации сокетов Windows, которую Ws2_32.dll ожидает использовать вызывающий объект. В байте высокого порядка указывается дополнительный номер версии; Байт нижнего порядка указывает основной номер версии.
wHighVersion
Тип: WORD
Самая высокая версия спецификации сокетов Windows, которую может поддерживать Ws2_32.dll . В байте высокого порядка указывается дополнительный номер версии; Байт нижнего порядка указывает основной номер версии.
Это то же значение, что и член wVersion , если версия, запрашиваемая в параметре wVersionRequested, переданная функции WSAStartup , является самой высокой версией спецификации Windows Sockets, которую может поддерживать Ws2_32.dll .
iMaxSockets
Тип: unsigned short
Максимальное число сокетов, которые могут быть открыты. Этот элемент следует игнорировать для сокетов Windows версии 2 и более поздних версий.
Элемент iMaxSockets сохраняется для совместимости со спецификацией сокетов Windows 1.1, но не должен использоваться при разработке новых приложений. Для всех базовых поставщиков услуг не подходит ни одно значение. Архитектура сокетов Windows изменилась в версии 2 для поддержки нескольких поставщиков, а структура WSADATA больше не применяется к стеку одного поставщика.
iMaxUdpDg
Тип: unsigned short
Максимальный размер сообщения датаграммы. Этот элемент игнорируется для сокетов Windows версии 2 и более поздних версий.
Элемент iMaxUdpDg сохраняется для совместимости со спецификацией сокетов Windows 1.1, но не должен использоваться при разработке новых приложений. Архитектура сокетов Windows изменилась в версии 2 для поддержки нескольких поставщиков, а структура WSADATA больше не применяется к стеку одного поставщика. Для фактического максимального размера сообщения, определенного поставщика и типа сокетов Windows, приложения должны использовать метод getsockopt для получения значения параметра SO_MAX_MSG_SIZE после создания сокета.
lpVendorInfo
Тип: char FAR*
Указатель на сведения о поставщике. Этот элемент следует игнорировать для сокетов Windows версии 2 и более поздних версий.
Элемент lpVendorInfo сохраняется для обеспечения совместимости со спецификацией сокетов Windows 1.1. Архитектура сокетов Windows изменилась в версии 2 для поддержки нескольких поставщиков, а структура WSADATA больше не применяется к стеку одного поставщика. Приложения, нуждающиеся в доступе к сведениям о конфигурации конкретного поставщика, должны использовать метод getsockopt для получения значения PVD_CONFIG параметров для сведений о конкретном поставщике.
szDescription[WSADESCRIPTION_LEN + 1]
Тип: char[WSADESCRIPTION_LEN+1]
Строка ASCII с символом NULL, в которую Ws2_32.dll копирует описание реализации windows Sockets. Текст (до 256 символов в длину) может содержать любые символы, кроме символов управления и форматирования. Наиболее вероятным вариантом использования приложения для этого элемента является отображение его (возможно, усеченного) в сообщении о состоянии.
szSystemStatus[WSASYS_STATUS_LEN + 1]
Тип: char[WSASYS_STATUS_LEN+1]
Строка ASCII с символом NULL, в которую Ws2_32.dll копирует соответствующие сведения о состоянии или конфигурации. Этот параметр следует использовать вWs2_32.dll только в том случае, если информация может быть полезна для пользователя или сотрудников службы поддержки. Этот элемент не следует рассматривать как расширение параметра szDescription .
Функция WSAStartup инициирует использование библиотеки DLL windows Sockets процессом. Функция WSAStartup возвращает указатель на
Структура WSADATA в параметре lpWSAData.
Текущая версия спецификации сокетов Windows, возвращаемая в элементе wHighVersion
Структура WSADATA — это версия 2.2, закодированная с основным номером версии в низкобайтовом и дополнительным номером версии в высоком байте. Эта версия текущей библиотеки DLL Winsock ,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) |