DanielDemidko
@DanielDemidko
Программист

Что за ошибка с Boost.Asio?

87d8abe6b98d41f1bfd6973c7d2cd4e2.PNG
Делал всё по книжке John Torjo - Boost.Asio C++ Network Programming, что не так?
Пробовал выключить брандмауэр, всё равно кидает непонятную ошибку.
Код
int main()
{
    using namespace boost::asio;
    io_service service;
    ip::tcp::endpoint endp(ip::address::from_string("127.0.0.1"), 2001);
    ip::tcp::socket sock(service);
    try {
        sock.connect(endp);
    }
    catch (boost::system::system_error error) {
        std::cout << error.what() << std::endl;
    }
}
  • Вопрос задан
  • 362 просмотра
Решения вопроса 1
@Ariox41
Для вывода сообщения в нормальном виде попробуйте выполнить команду chcp 1251 перед запуском программы. Или можно в реестре поменять кодировку по умолчанию, как тут сделано.

По поводу самой ошибки: в Windows порты по умолчанию разделены на две группы, работа с которыми требует разных прав (на самом деле там всё сложнее, но я подробностей не помню). Попробуйте увеличить номер порта, что-то вроде 51501. Ну или с правами администратора запустите для проверки. Возможно, у вас проблема не в этом, но я с таким сталкивался.

EDIT: Если не получится с кодировками, выведите номер ошибки и ищите по нему, boost это позволяет сделать. Ну и напомню, что для работы клиента нужно сначала запустить сервер, а то мало ли.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы