Estrutura WSADATA (winsock.h)
A estrutura WSADATA contém informações sobre a implementação do Windows Sockets.
Sintaxe
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;
Membros
wVersion
Tipo: WORD
A versão da especificação do Windows Sockets que o Ws2_32.dll espera que o chamador use. O byte de alta ordem especifica o número de versão secundária; o byte de baixa ordem especifica o número de versão principal.
wHighVersion
Tipo: WORD
A versão mais alta da especificação do Windows Sockets que o Ws2_32.dll pode dar suporte. O byte de alta ordem especifica o número de versão secundária; o byte de baixa ordem especifica o número de versão principal.
Esse é o mesmo valor que o membro wVersion quando a versão solicitada no parâmetro wVersionRequested passada para a função WSAStartup é a versão mais alta da especificação do Windows Sockets que o Ws2_32.dll pode dar suporte.
iMaxSockets
Tipo: curto sem sinal
O número máximo de soquetes que podem ser abertos. Esse membro deve ser ignorado para o Windows Sockets versão 2 e posterior.
O membro iMaxSockets é retido para compatibilidade com a especificação 1.1 do Windows Sockets, mas não deve ser usado ao desenvolver novos aplicativos. Nenhum valor único pode ser apropriado para todos os provedores de serviços subjacentes. A arquitetura do Windows Sockets foi alterada na versão 2 para dar suporte a vários provedores e a estrutura WSADATA não se aplica mais à pilha de um único fornecedor.
iMaxUdpDg
Tipo: curto sem sinal
O tamanho máximo da mensagem de datagrama. Esse membro é ignorado para o Windows Sockets versão 2 e posterior.
O membro iMaxUdpDg é retido para compatibilidade com a especificação 1.1 do Windows Sockets, mas não deve ser usado ao desenvolver novos aplicativos. A arquitetura do Windows Sockets foi alterada na versão 2 para dar suporte a vários provedores e a estrutura WSADATA não se aplica mais à pilha de um único fornecedor. Para o tamanho máximo real da mensagem específico de um determinado provedor de serviços do Windows Sockets e do tipo de soquete, os aplicativos devem usar getsockopt para recuperar o valor da opção SO_MAX_MSG_SIZE após a criação de um soquete.
lpVendorInfo
Tipo: char FAR*
Um ponteiro para informações específicas do fornecedor. Esse membro deve ser ignorado para o Windows Sockets versão 2 e posterior.
O membro lpVendorInfo é retido para compatibilidade com a especificação 1.1 do Windows Sockets. A arquitetura do Windows Sockets foi alterada na versão 2 para dar suporte a vários provedores e a estrutura WSADATA não se aplica mais à pilha de um único fornecedor. Os aplicativos que precisam acessar informações de configuração específicas do fornecedor devem usar getsockopt para recuperar o valor da opção PVD_CONFIG para informações específicas do fornecedor.
szDescription[WSADESCRIPTION_LEN + 1]
Tipo: char[WSADESCRIPTION_LEN+1]
Uma cadeia de caracteres ASCII terminada em NULL na qual o Ws2_32.dll copia uma descrição da implementação do Windows Sockets. O texto (até 256 caracteres de comprimento) pode conter qualquer caractere, exceto caracteres de controle e formatação. O uso mais provável que um aplicativo teria para esse membro é exibi-lo (possivelmente truncado) em uma mensagem status.
szSystemStatus[WSASYS_STATUS_LEN + 1]
Tipo: char[WSASYS_STATUS_LEN+1]
Uma cadeia de caracteres ASCII terminada em NULL na qual o Ws2_32.dll copia informações relevantes de configuração ou status. O Ws2_32.dll deve usar esse parâmetro somente se as informações puderem ser úteis para o usuário ou a equipe de suporte. Esse membro não deve ser considerado como uma extensão do parâmetro szDescription .
Comentários
A função WSAStartup inicia o uso da DLL do Windows Sockets por um processo. A função WSAStartup retorna um ponteiro para o
Estrutura WSADATA no parâmetro lpWSAData .
A versão atual da especificação do Windows Sockets retornada no membro wHighVersion do
A estrutura WSADATA é codificada na versão 2.2 com o número de versão principal no byte baixo e o número de versão secundária no byte alto. Esta versão da DLL do Winsock atual, Ws2_32.dll, dá suporte a aplicativos que solicitam qualquer uma das seguintes versões da especificação do Windows Sockets:
- 1.0
- 1,1
- 2,0
- 2.1
- 2.2
Exemplos
O exemplo a seguir demonstra o uso da estrutura 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
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho | winsock.h (inclua Winsock2.h) |