Herstellen einer Verbindung mit einem Socket

Damit ein Client in einem Netzwerk kommunizieren kann, muss er eine Verbindung mit einem Server herstellen.

So stellen Sie eine Verbindung mit einem Socket her

Rufen Sie die Connect-Funktion auf, und übergeben Sie den erstellten Socket und die Sockaddr-Struktur als Parameter. Überprüfen Sie auf allgemeine Fehler.

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

Die getaddrinfo-Funktion wird verwendet, um die Werte in der sockaddr-Struktur zu bestimmen. In diesem Beispiel wird die erste IP-Adresse, die von der getaddrinfo-Funktion zurückgegeben wird, verwendet, um die an die Verbindung übergebene sockaddr-Struktur anzugeben. Wenn beim Verbindungsaufruf ein Fehler bei der ersten IP-Adresse auftritt, versuchen Sie es mit der nächsten addrinfo-Struktur in der verknüpften Liste, die von der getaddrinfo-Funktion zurückgegeben wird.

Die in der sockaddr-Struktur angegebenen Informationen umfassen:

  • die IP-Adresse des Servers, mit dem der Client versucht, eine Verbindung herzustellen.
  • Die Portnummer auf dem Server, mit dem der Client eine Verbindung herstellt. Dieser Port wurde als Port 27015 angegeben, als der Client die getaddrinfo-Funktion aufgerufen hat.

Nächster Schritt: Senden und Empfangen von Daten auf dem Client

Erste Schritte mit Winsock

Winsock-Clientanwendung

Erstellen eines Sockets für den Client