Struttura WSADATA (winsock.h)
La struttura WSADATA contiene informazioni sull'implementazione di Windows Sockets.
Sintassi
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;
Members
wVersion
Tipo: WORD
La versione della specifica di Windows Sockets che il Ws2_32.dll prevede che il chiamante usi. Il byte di ordine elevato specifica il numero di versione secondaria; il byte con ordine basso specifica il numero di versione principale.
wHighVersion
Tipo: WORD
La versione più recente della specifica di Windows Sockets supportata dall' Ws2_32.dll . Il byte di ordine elevato specifica il numero di versione secondaria; il byte con ordine basso specifica il numero di versione principale.
Si tratta dello stesso valore del membro wVersion quando la versione richiesta nel parametro wVersionRequested passato alla funzione WSAStartup è la versione più alta della specifica Windows Sockets che il Ws2_32.dll può supportare.
iMaxSockets
Tipo: unsigned short
Numero massimo di socket che possono essere aperti. Questo membro deve essere ignorato per Windows Sockets versione 2 e successive.
Il membro iMaxSockets viene mantenuto per la compatibilità con la specifica Windows Sockets 1.1, ma non deve essere usato durante lo sviluppo di nuove applicazioni. Nessun valore singolo può essere appropriato per tutti i provider di servizi sottostanti. L'architettura di Windows Sockets è stata modificata nella versione 2 per supportare più provider e la struttura WSADATA non si applica più allo stack di un singolo fornitore.
iMaxUdpDg
Tipo: unsigned short
Dimensione massima del messaggio del datagram. Questo membro viene ignorato per Windows Sockets versione 2 e successive.
Il membro iMaxUdpDg viene mantenuto per la compatibilità con la specifica Windows Sockets 1.1, ma non deve essere usato durante lo sviluppo di nuove applicazioni. L'architettura di Windows Sockets è stata modificata nella versione 2 per supportare più provider e la struttura WSADATA non si applica più allo stack di un singolo fornitore. Per le dimensioni massime effettive del messaggio specifiche per un determinato provider di servizi Windows Sockets e tipo di socket, le applicazioni devono usare getsockopt per recuperare il valore dell'opzione SO_MAX_MSG_SIZE dopo la creazione di un socket.
lpVendorInfo
Tipo: char FAR*
Puntatore a informazioni specifiche del fornitore. Questo membro deve essere ignorato per Windows Sockets versione 2 e successive.
Il membro lpVendorInfo viene mantenuto per la compatibilità con la specifica Windows Sockets 1.1. L'architettura di Windows Sockets è stata modificata nella versione 2 per supportare più provider e la struttura WSADATA non si applica più allo stack di un singolo fornitore. Le applicazioni che devono accedere alle informazioni di configurazione specifiche del fornitore devono usare getsockopt per recuperare il valore dell'opzione PVD_CONFIG per informazioni specifiche del fornitore.
szDescription[WSADESCRIPTION_LEN + 1]
Tipo: char[WSADESCRIPTION_LEN+1]
Stringa ASCII con terminazione NULL in cui il Ws2_32.dll copia una descrizione dell'implementazione di Windows Sockets. Il testo (fino a 256 caratteri) può contenere qualsiasi carattere, ad eccezione dei caratteri di controllo e formattazione. L'uso più probabile che un'applicazione avrebbe per questo membro consiste nel visualizzarla (possibilmente troncata) in un messaggio di stato.
szSystemStatus[WSASYS_STATUS_LEN + 1]
Tipo: char[WSASYS_STATUS_LEN+1]
Stringa ASCII con terminazione NULL in cui il Ws2_32.dll copia le informazioni sullo stato o sulla configurazione pertinenti. Il Ws2_32.dll deve usare questo parametro solo se le informazioni potrebbero essere utili per l'utente o il personale di supporto. Questo membro non deve essere considerato come estensione del parametro szDescription .
Commenti
La funzione WSAStartup avvia l'uso della DLL di Windows Sockets da un processo. La funzione WSAStartup restituisce un puntatore all'oggetto
Struttura WSADATA nel parametro lpWSAData.
La versione corrente della specifica Windows Sockets restituita nel membro wHighVersion del
La struttura WSADATA è codificata nella versione 2.2 con il numero di versione principale nel byte basso e il numero di versione secondaria nel byte elevato. Questa versione della DLL Winsock corrente, Ws2_32.dll, supporta le applicazioni che richiedono una delle versioni seguenti della specifica di Windows Sockets:
- 1.0
- 1,1
- 2.0
- 2.1
- 2.2
Esempio
Nell'esempio seguente viene illustrato l'uso della struttura 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. */
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | winsock.h (include Winsock2.h) |