Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы сервер принимал клиентские подключения, он должен быть привязан к сетевому адресу в системе. В следующем коде показано, как привязать сокет, который уже был создан с IP-адресом и портом. Клиентские приложения используют IP-адрес и порт для подключения к сети узла.
Привязка сокета
Структура sockaddr содержит сведения о семействе адресов, IP-адресе и номере порта.
Вызовите функцию привязки, передав созданную сокета и структуру sockaddrdr, возвращенную из функции getaddrinfoв качестве параметров. Проверьте наличие общих ошибок.
// 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;
}
После вызова функции информация о адресах, возвращаемая функцией getaddrinfo, больше не требуется. Функция freeaddrinfo вызывается для освобождения памяти, выделенной функцией getaddrinfo для этой информации об этом адресе.
freeaddrinfo(result);
Следующий шаг: прослушивание сокета
Связанные разделы