Это означает, что ОС не знает, какой номер порта соответствует службе TCP с именем «http».
В Unix-подобных ОС это будет означать, что строка http 80/tcp
отсутствует в /etc/services
. Я могу воспроизвести ошибку в Linux, комментируя эту строку.
Если ОС не может быть настроена для использования служб, вы можете использовать любую службу ""
в распознавателе и указать номер порта явно при создании объекта конечной точки для вызова подключения:
tcp::endpoint connectionEndpoint(endpoint_iterator->address(), 80);
boost::system::error_code ec;
socket.connect(connectionEndpoint, ec);