Associazione di un socket

Affinché un server accetti le connessioni client, deve essere associato a un indirizzo di rete all'interno del sistema. Il codice seguente illustra come associare un socket già creato a un indirizzo IP e a una porta. Le applicazioni client usano l'indirizzo IP e la porta per connettersi alla rete host.

Per associare un socket

La struttura sockaddr contiene informazioni relative alla famiglia di indirizzi, all'indirizzo IP e al numero di porta.

Chiamare la funzione di associazione passando il socket creato e la struttura sockaddr restituita dalla funzione getaddrinfo come parametri. Verificare la presenza di errori generali.

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

Dopo aver chiamato la funzione bind , le informazioni sull'indirizzo restituite dalla funzione getaddrinfo non sono più necessarie. La funzione freeaddrinfo viene chiamata per liberare la memoria allocata dalla funzione getaddrinfo per queste informazioni sull'indirizzo.

    freeaddrinfo(result);

Passaggio successivo: Ascolto su un socket

Introduzione con Winsock

Applicazione server Winsock

Creazione di un socket per il server