Share via


Conexión a un socket

Para que un cliente se comunique en una red, debe conectarse a un servidor.

Para conectarse a un socket

Llame a la función connect y pase el socket creado y la estructura sockaddr como parámetros. Compruebe si hay errores generales.

// 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 función getaddrinfo se usa para determinar los valores de la estructura sockaddr . En este ejemplo, se usa la primera dirección IP devuelta por la función getaddrinfo para especificar la estructura sockaddr pasada a la conexión. Si se produce un error en la llamada de conexión a la primera dirección IP, pruebe la siguiente estructura addrinfo de la lista vinculada devuelta desde la función getaddrinfo .

La información especificada en la estructura sockaddr incluye:

  • la dirección IP del servidor al que el cliente intentará conectarse.
  • el número de puerto del servidor al que se conectará el cliente. Este puerto se especificó como puerto 27015 cuando el cliente llamó a la función getaddrinfo .

Paso siguiente: Enviar y recibir datos en el cliente

Introducción con Winsock

Aplicación cliente winsock

Creación de un socket para el cliente