Share via


Connessione a un socket

Affinché un client comunichi su una rete, deve connettersi a un server.

Per connettersi a un socket

Chiamare la funzione connect , passando il socket creato e la struttura sockaddr come parametri. Verificare la presenza di errori generali.

// Connect to server.
iResult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
if (iResult == SOCKET_ERROR) {
    closesocket(ConnectSocket);
    ConnectSocket = INVALID_SOCKET;
}

// Should really try the next address returned by getaddrinfo
// if the connect call failed
// But for this simple example we just free the resources
// returned by getaddrinfo and print an error message

freeaddrinfo(result);

if (ConnectSocket == INVALID_SOCKET) {
    printf("Unable to connect to server!\n");
    WSACleanup();
    return 1;
}

La funzione getaddrinfo viene usata per determinare i valori nella struttura sockaddr . In questo esempio viene usato il primo indirizzo IP restituito dalla funzione getaddrinfo per specificare la struttura sockaddr passata alla connessione. Se la chiamata di connessione non riesce al primo indirizzo IP, provare la struttura addrinfo successiva nell'elenco collegato restituito dalla funzione getaddrinfo .

Le informazioni specificate nella struttura sockaddr includono:

  • l'indirizzo IP del server a cui il client tenterà di connettersi.
  • numero di porta nel server a cui si connetterà il client. Questa porta è stata specificata come porta 27015 quando il client ha chiamato la funzione getaddrinfo .

Passaggio successivo: Invio e ricezione di dati nel client

Introduzione con Winsock

Applicazione client Winsock

Creazione di un socket per il client