Initialisieren von Winsock

Alle Prozesse (Anwendungen oder DLLs), die Winsock-Funktionen aufrufen, müssen die Verwendung der Windows Sockets-DLL initialisieren, bevor andere Winsock-Funktionsaufrufe ausgeführt werden. Dadurch wird auch sichergestellt, dass Winsock auf dem System unterstützt wird.

So initialisieren Sie Winsock

  1. Erstellen Sie ein WSADATA-Objekt namens wsaData.

    WSADATA wsaData;
    
  2. Rufen Sie WSAStartup auf , und geben Sie dessen Wert als ganze Zahl zurück, und überprüfen Sie auf Fehler.

    int iResult;
    
    // Initialize Winsock
    iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
    if (iResult != 0) {
        printf("WSAStartup failed: %d\n", iResult);
        return 1;
    }
    

Die WSAStartup-Funktion wird aufgerufen, um die Verwendung von WS2_32.dll zu initiieren.

Die WSADATA-Struktur enthält Informationen zur Windows Sockets-Implementierung. Der MAKEWORD(2,2)-Parameter von WSAStartup stellt eine Anforderung für Version 2.2 von Winsock auf dem System und legt die übergebene Version als höchste Version der Windows Sockets-Unterstützung fest, die der Aufrufer verwenden kann.

Nächster Schritt für einen Client: Erstellen eines Sockets für den Client

Nächster Schritt für einen Server: Erstellen eines Sockets für den Server

Erste Schritte mit Winsock

Erstellen einer einfachen Winsock-Anwendung