Estructura WSADATA (winsock2.h)
La estructura WSADATA contiene información sobre la implementación de Windows Sockets.
Sintaxis
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, *LPWSADATA;
Miembros
wVersion
Tipo: WORD
La versión de la especificación de Windows Sockets que el Ws2_32.dll espera que use el autor de la llamada. El byte de orden superior especifica el número de versión secundaria; el byte de orden bajo especifica el número de versión principal.
wHighVersion
Tipo: WORD
La versión más alta de la especificación de Windows Sockets que el Ws2_32.dll puede admitir. El byte de orden superior especifica el número de versión secundaria; el byte de orden bajo especifica el número de versión principal.
Este es el mismo valor que el miembro wVersion cuando la versión solicitada en el parámetro wVersionRequested pasado a la función WSAStartup es la versión más alta de la especificación de Windows Sockets que el Ws2_32.dll puede admitir.
iMaxSockets
Tipo: unsigned short
Número máximo de sockets que se pueden abrir. Este miembro debe omitirse para Windows Sockets versión 2 y posteriores.
El miembro iMaxSockets se conserva por compatibilidad con la especificación 1.1 de Windows Sockets, pero no debe usarse al desarrollar nuevas aplicaciones. Ningún valor único puede ser adecuado para todos los proveedores de servicios subyacentes. La arquitectura de Windows Sockets cambió en la versión 2 para admitir varios proveedores y la estructura WSADATA ya no se aplica a la pila de un único proveedor.
iMaxUdpDg
Tipo: unsigned short
Tamaño máximo del mensaje de datagrama. Este miembro se omite para Windows Sockets versión 2 y posteriores.
El miembro iMaxUdpDg se conserva por compatibilidad con la especificación 1.1 de Windows Sockets, pero no debe usarse al desarrollar nuevas aplicaciones. La arquitectura de Windows Sockets cambió en la versión 2 para admitir varios proveedores y la estructura WSADATA ya no se aplica a la pila de un único proveedor. Para el tamaño máximo real del mensaje específico de un determinado proveedor de servicios de Windows Sockets y un tipo de socket, las aplicaciones deben usar getsockopt para recuperar el valor de la opción SO_MAX_MSG_SIZE después de crear un socket.
lpVendorInfo
Tipo: char FAR*
Puntero a información específica del proveedor. Este miembro debe omitirse para Windows Sockets versión 2 y posteriores.
El miembro lpVendorInfo se conserva por compatibilidad con la especificación 1.1 de Windows Sockets. La arquitectura de Windows Sockets cambió en la versión 2 para admitir varios proveedores y la estructura WSADATA ya no se aplica a la pila de un único proveedor. Las aplicaciones que necesitan acceder a la información de configuración específica del proveedor deben usar getsockopt para recuperar el valor de la opción PVD_CONFIG para obtener información específica del proveedor.
szDescription[WSADESCRIPTION_LEN + 1]
Tipo: char[WSADESCRIPTION_LEN+1]
Cadena ASCII terminada en NULL en la que el Ws2_32.dll copia una descripción de la implementación de Windows Sockets. El texto (hasta 256 caracteres de longitud) puede contener cualquier carácter excepto los caracteres de control y formato. Lo más probable es usar que una aplicación tendría para este miembro es mostrarla (posiblemente truncada) en un mensaje de estado.
szSystemStatus[WSASYS_STATUS_LEN + 1]
Tipo: char[WSASYS_STATUS_LEN+1]
Una cadena ASCII terminada en NULL en la que el Ws2_32.dll copia la información de estado o configuración pertinentes. El Ws2_32.dll solo debe usar este parámetro si la información puede ser útil para el usuario o el personal de soporte técnico. Este miembro no debe considerarse una extensión del parámetro szDescription .
Comentarios
La función WSAStartup inicia el uso del archivo DLL de Windows Sockets mediante un proceso. La función WSAStartup devuelve un puntero al
Estructura WSADATA en el parámetro lpWSAData .
La versión actual de la especificación de Windows Sockets devuelta en el miembro wHighVersion del
La estructura WSADATA está codificada en la versión 2.2 con el número de versión principal en el byte bajo y el número de versión secundaria en el byte superior. Esta versión del archivo DLL de Winsock actual, Ws2_32.dll, admite aplicaciones que solicitan cualquiera de las siguientes versiones de la especificación de Windows Sockets:
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
Ejemplos
En el ejemplo siguiente se muestra el uso de la estructura 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. */
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | winsock2.h (incluya Winsock2.h) |