WSADATA-Struktur (winsock.h)
Die WSADATA-Struktur enthält Informationen zur Windows Sockets-Implementierung.
Syntax
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;
Member
wVersion
Typ: WORD
Die Version der Windows Sockets-Spezifikation, die der Ws2_32.dll erwartet, dass der Aufrufer verwendet wird. Das Hochreihenfolge-Byte gibt die Nebenversionsnummer an. das Byte mit niedriger Reihenfolge gibt die Hauptversionsnummer an.
wHighVersion
Typ: WORD
Die höchste Version der Windows Sockets-Spezifikation, die vom Ws2_32.dll unterstützt werden kann. Das Hochreihenfolge-Byte gibt die Nebenversionsnummer an. das Byte mit niedriger Reihenfolge gibt die Hauptversionsnummer an.
Dies ist der gleiche Wert wie der wVersion-Member , wenn die im wVersionRequested-Parameter angeforderte Version, die an die WSAStartup-Funktion übergeben wird, die höchste Version der Windows Sockets-Spezifikation ist, die vom Ws2_32.dll unterstützt werden kann.
iMaxSockets
Typ: unsigned short
Die maximale Anzahl von Sockets, die geöffnet werden können. Dieser Member sollte für Windows Sockets, Version 2 und höher, ignoriert werden.
Der iMaxSockets-Member wird aus Gründen der Kompatibilität mit der Windows Sockets-Spezifikation 1.1 beibehalten, sollte aber nicht beim Entwickeln neuer Anwendungen verwendet werden. Kein einzelner Wert kann für alle zugrunde liegenden Dienstanbieter geeignet sein. Die Architektur von Windows Sockets wurde in Version 2 geändert, um mehrere Anbieter zu unterstützen, und die WSADATA-Struktur gilt nicht mehr für den Stapel eines einzelnen Anbieters.
iMaxUdpDg
Typ: unsigned short
Die maximale Größe von Datagrammnachrichten. Dieses Element wird für Windows Sockets, Version 2 und höher, ignoriert.
Das iMaxUdpDg-Element wird aus Gründen der Kompatibilität mit der Windows Sockets-Spezifikation 1.1 beibehalten, sollte aber nicht beim Entwickeln neuer Anwendungen verwendet werden. Die Architektur von Windows Sockets wurde in Version 2 geändert, um mehrere Anbieter zu unterstützen, und die WSADATA-Struktur gilt nicht mehr für den Stapel eines einzelnen Anbieters. Für die tatsächliche maximale Nachrichtengröße, die für einen bestimmten Windows Sockets-Dienstanbieter und Sockettyp spezifisch ist, sollten Anwendungen getockopt verwenden, um den Wert der Option SO_MAX_MSG_SIZE abzurufen, nachdem ein Socket erstellt wurde.
lpVendorInfo
Typ: char FAR*
Ein Zeiger auf anbieterspezifische Informationen. Dieser Member sollte für Windows Sockets, Version 2 und höher, ignoriert werden.
Das lpVendorInfo-Element wird aus Gründen der Kompatibilität mit der Windows Sockets-Spezifikation 1.1 beibehalten. Die Architektur von Windows Sockets wurde in Version 2 geändert, um mehrere Anbieter zu unterstützen, und die WSADATA-Struktur gilt nicht mehr für den Stapel eines einzelnen Anbieters. Anwendungen, die auf herstellerspezifische Konfigurationsinformationen zugreifen müssen, sollten getockopt verwenden, um den Wert der Option PVD_CONFIG für anbieterspezifische Informationen abzurufen.
szDescription[WSADESCRIPTION_LEN + 1]
Typ: char[WSADESCRIPTION_LEN+1]
Eine NULL-beendete ASCII-Zeichenfolge, in die der Ws2_32.dll eine Beschreibung der Windows Sockets-Implementierung kopiert. Der Text (bis zu 256 Zeichen lang) kann beliebige Zeichen mit Ausnahme von Steuerelement- und Formatierungszeichen enthalten. Die wahrscheinlichste Verwendung, die eine Anwendung für diesen Member hätte, besteht darin, es in einer status-Nachricht anzuzeigen (möglicherweise abgeschnitten).
szSystemStatus[WSASYS_STATUS_LEN + 1]
Typ: char[WSASYS_STATUS_LEN+1]
Eine MIT NULL beendete ASCII-Zeichenfolge, in die der Ws2_32.dll relevante status- oder Konfigurationsinformationen kopiert. Der Ws2_32.dll sollte diesen Parameter nur verwenden, wenn die Informationen für den Benutzer oder das Supportpersonal nützlich sein könnten. Dieses Element sollte nicht als Erweiterung des szDescription-Parameters betrachtet werden.
Hinweise
Die WSAStartup-Funktion initiiert die Verwendung der Windows Sockets-DLL durch einen Prozess. Die WSAStartup-Funktion gibt einen Zeiger auf den
WSADATA-Struktur im lpWSAData-Parameter .
Die aktuelle Version der Windows Sockets-Spezifikation, die im wHighVersion-Element des
Die WSADATA-Struktur ist Version 2.2 mit der Hauptversionsnummer im low-Byte und der Nebenversionsnummer im Hochbyte codiert. Diese Version der aktuellen Winsock-DLL Ws2_32.dllunterstützt Anwendungen, die eine der folgenden Versionen der Windows Sockets-Spezifikation anfordern:
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
Beispiele
Im folgenden Beispiel wird die Verwendung der WSADATA-Struktur veranschaulicht.
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. */
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | winsock.h (einschließlich Winsock2.h) |