Freigeben über


Erstellen einer einfachen Winsock-Anwendung

So erstellen Sie eine einfache Winsock-Anwendung

  1. Erstellen Sie ein neues leeres Projekt.

  2. Fügen Sie dem Projekt eine leere C++-Quelldatei hinzu.

  3. Stellen Sie sicher, dass sich die Buildumgebung auf die Verzeichnisse Include, Lib und Src des Microsoft Windows Software Development Kit (SDK) oder des früheren Platform Software Development Kit (SDK) bezieht.

  4. Stellen Sie sicher, dass die Buildumgebung mit der Winsock-Bibliotheksdatei Ws2_32.lib verknüpft ist. Anwendungen, die Winsock verwenden, müssen mit der Bibliotheksdatei Ws2_32.lib verknüpft sein. Der #pragma Kommentar gibt dem Linker an, dass die Datei Ws2_32.lib benötigt wird.

  5. Beginnen Sie mit der Programmierung der Winsock-Anwendung. Verwenden Sie die Winsock-API, indem Sie die Winsock 2-Headerdateien einschließen. Die Winsock2.h-Headerdatei enthält die meisten Winsock-Funktionen, -Strukturen und -Definitionen. Die Ws2tcpip.h-Headerdatei enthält Definitionen, die im Dokument WinSock 2 Protocol-Specific Annex für TCP/IP eingeführt wurden und neuere Funktionen und Strukturen zum Abrufen von IP-Adressen enthalten.

    Hinweis

    Stdio.h wird für die Standardeingabe und -ausgabe verwendet, insbesondere für die printf() -Funktion.

     

#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Hinweis

Die Iphlpapi.h-Headerdatei ist erforderlich, wenn eine Anwendung die IP-Hilfs-APIs verwendet. Wenn die Iphlpapi.h-Headerdatei erforderlich ist, sollte die #include Zeile für die Winsock2.h-Headerdatei vor der #include Zeile für die Headerdatei Iphlpapi.h platziert werden.

Die Winsock2.h-Headerdatei enthält intern Kernelemente aus der Windows.h-Headerdatei , sodass es in Winsock-Anwendungen normalerweise keine #include Zeile für die Windows.h-Headerdatei gibt. Wenn eine #include Zeile für die Windows.h-Headerdatei erforderlich ist, sollte dieser das makro #define WIN32_LEAN_AND_MEAN vorangestellt werden. Aus historischen Gründen enthält der Windows.h-Header standardmäßig die Winsock.h-Headerdatei für Windows Sockets 1.1. Die Deklarationen in der Winsock.h-Headerdatei führen zu Konflikten mit den Deklarationen in der Winsock2.h-Headerdatei , die für Windows Sockets 2.0 erforderlich sind. Das WIN32_LEAN_AND_MEAN Makro verhindert, dass winsock.h im Windows.h-Header enthalten ist. Ein Beispiel, das dies veranschaulicht, ist unten dargestellt.

 

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>

#pragma comment(lib, "Ws2_32.lib")

int main() {
  return 0;
}

Nächster Schritt: Initialisieren von Winsock

Erste Schritte mit Winsock

Informationen zu Servern und Clients