Binden eines Sockets

Damit ein Server Clientverbindungen akzeptiert, muss er an eine Netzwerkadresse innerhalb des Systems gebunden sein. 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 zu Adressfamilie, IP-Adresse und Portnummer.

Rufen Sie die Bindungsfunktion auf, und übergeben Sie die erstellte Socket- und Sockaddr-Struktur , die von der getaddrinfo-Funktion zurückgegeben werden, als Parameter. Suchen Sie nach allgemeinen Fehlern.

    // 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;
    }

Sobald die Bindungsfunktion aufgerufen wurde, werden die von der getaddrinfo-Funktion zurückgegebenen Adressinformationen nicht mehr benötigt. Die Freeaddrinfo-Funktion wird aufgerufen, um den von der getaddrinfo-Funktion zugewiesenen Arbeitsspeicher für diese Adressinformationen freizugeben.

    freeaddrinfo(result);

Nächster Schritt: Lauschen an einem Socket

Erste Schritte mit Winsock

Winsock Server-Anwendung

Erstellen eines Sockets für den Server