Binden eines Sockets

Damit ein Server Clientverbindungen akzeptiert, muss er an eine Netzwerkadresse innerhalb des Systems gebunden werden. Der folgende Code veranschaulicht, wie ein Socket, der bereits erstellt wurde, an eine IP-Adresse und einen Port gebunden wird. Clientanwendungen verwenden die IP-Adresse und den Port, um eine Verbindung mit dem Hostnetzwerk herzustellen.

So binden Sie einen Socket

Die Sockaddr-Struktur enthält Informationen zur Adressfamilie, IP-Adresse und Portnummer.

Rufen Sie die bind-Funktion auf, und übergeben Sie den erstellten Socket und die sockaddr-Struktur, die von der getaddrinfo-Funktion als Parameter zurückgegeben werden. Überprüfen Sie auf allgemeine Fehler.

    // Setup the TCP listening socket
    iResult = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen);
    if (iResult == SOCKET_ERROR) {
        printf("bind failed with error: %d\n", WSAGetLastError());
        freeaddrinfo(result);
        closesocket(ListenSocket);
        WSACleanup();
        return 1;
    }

Nachdem die bind-Funktion aufgerufen wurde, werden die von der getaddrinfo-Funktion zurückgegebenen Adressinformationen nicht mehr benötigt. Die funktion freeaddrinfo wird aufgerufen, um den von der getaddrinfo-Funktion für diese Adressinformationen zugeordneten Arbeitsspeicher frei zu geben.

    freeaddrinfo(result);

Nächster Schritt: Lauschen an einem Socket

Erste Schritte mit Winsock

Winsock Server-Anwendung

Erstellen eines Sockets für den Server