Поделиться через


Подключение к сокету

Чтобы клиент общался по сети, он должен подключиться к серверу.

Подключение к сокету

Вызовите функцию connect , передав в качестве параметров созданный сокет и структуру sockaddr . Проверьте наличие общих ошибок.

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

Функция getaddrinfo используется для определения значений в структуре sockaddr . В этом примере первый IP-адрес, возвращаемый функцией getaddrinfo , используется для указания структуры sockaddr, передаваемой в соединение. Если вызову не удается подключиться к первому IP-адресу, попробуйте следующую структуру addrinfo в связанном списке, возвращенном функцией getaddrinfo .

Сведения, указанные в структуре sockaddr, включают:

  • IP-адрес сервера, к которому клиент попытается подключиться.
  • номер порта на сервере, к которому будет подключаться клиент. Этот порт был указан как порт 27015, когда клиент вызывал функцию getaddrinfo .

Следующий шаг. Отправка и получение данных на клиенте

начало работы с Winsock

Клиентское приложение Winsock

Создание сокета для клиента