Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ursprüngliche Includedatei für die Verwendung mit Windows Sockets 1.1 war die Winsock.h Headerdatei. Zur Vereinfachung der Portierung vorhandener Quellcodes, die auf Berkeley UNIX-Sockets zu Windows-Sockets basieren, wurden Windows Sockets Development Kits für Winsock 1.1 ermutigt, mit mehreren enthaltenen Dateien mit denselben Namen wie standard UNIX enthalten dateien (z. B. die sys/socket.h und arpa/inet.h Headerdateien). Diese Winsock-Headerdateien enthalten jedoch lediglich eine Direktive, um die Winsock2.h Headerdatei einzuschließen.
Als Windows Sockets 2 veröffentlicht wurde, wurde die primäre Includedatei für die Verwendung mit Windows Sockets in Winsock2.humbenannt. Die ältere ursprüngliche Winsock.h Headerdatei für Winsock 1.1 wurde ebenfalls zur Kompatibilität mit älteren Anwendungen beibehalten. Die Entwicklung kompatibler Winsock 1.1-Anwendungen ist seit der Veröffentlichung von Windows 2000 veraltet. Alle Anwendungen sollten jetzt die include Winsock2.h-Direktive in Winsock-Anwendungsquelldateien verwenden.
Die Winsock2.h Headerdatei enthält die meisten Winsock-Funktionen, -Strukturen und -Definitionen. Die Ws2tcpip.h Headerdatei enthält Definitionen, die im WinSock 2 Protocol-Specific Anhangsdokument für TCP/IP eingeführt wurden, das neuere Funktionen und Strukturen enthält, die zum Abrufen von IP-Adressen verwendet werden. Dazu gehören die getaddrinfo und getnameinfo Familie von Funktionen, die eine Namensauflösung für IPv4- oder IPv6-Adressen bereitstellen. Die Ws2tcpip.h Headerdatei ist nur erforderlich, wenn diese IP-agnostischen Benennungsfunktionen von der Anwendung benötigt werden.
Die Mswsock.h Headerdatei enthält Definitionen für microsoftspezifische Erweiterungen für windows Sockets 2 (TransmitFile-, AcceptEx-und ConnectEx-zum Beispiel). Die Mswsock.h Headerdatei wird normalerweise nicht benötigt, es sei denn, diese microsoftspezifischen Erweiterungen werden von der Anwendung verwendet.
Die Winsock2.h Headerdatei enthält intern Kernelemente aus der Windows.h Headerdatei. Daher gibt es in der Regel keine #include Zeile für die Windows.h Headerdatei in Winsock-Anwendungen. Wenn eine #include Zeile für die Windows.h Headerdatei erforderlich ist, sollte dies dem #define WIN32_LEAN_AND_MEAN-Makro vorangestellt werden. Aus historischen Gründen verwendet der Windows.h--Header standardmäßig die Winsock.h Headerdatei für Windows Sockets 1.1. Die Deklarationen in der Winsock.h Headerdatei stehen in Konflikt mit den Deklarationen in der Winsock2.h Headerdatei, die von Windows Sockets 2 benötigt wird. Das WIN32_LEAN_AND_MEAN Makro verhindert, dass die Winsock.h- vom Windows.h--Header eingeschlossen wird. Ein Beispiel, das dies veranschaulicht, ist unten dargestellt.
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#pragma comment(lib, "Ws2_32.lib")
int main() {
return 0;
}
Verwandte Themen