Binden eines Sockets

Ein Server kann erst Clientverbindungen annehmen, wenn er an eine Netzwerkadresse innerhalb des Systems gebunden worden ist. Im folgenden Code wird veranschaulicht, wie ein bereits erstellter Socket 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 bind-Funktion auf, wobei Sie ihr als Parameter die erstellte Struktur socket und sockaddr übergeben, die von der getaddrinfo-Funktion zurückgegeben wird. Überprüfen Sie den Code 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;
    }


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



    freeaddrinfo(result);



Nächster Schritt: Überwachen eines Sockets

Verwandte Themen

Erste Schritte mit Winsock
Winsock-Serveranwendung
Erstellen eines Sockets für den Server

 

 

Anzeigen:
© 2014 Microsoft