asio::error_code::message() выводит не то, что должно
У меня есть код
#ifdef _WIN32
#define _WIN32_WINNT 0x0A00
#endif
#include <iostream>
#include <string>
#define ASIO_STANDALONE
#include <asio.hpp>
#include <asio\ts\buffer.hpp>
#include <asio\ts\internet.hpp>
int main() {
asio::error_code ec;
asio::io_context context;
asio::ip::tcp::endpoint endpoint(asio::ip::make_address("127.0.0.1", ec), 80);
asio::ip::tcp::socket socket(context);
socket.connect(endpoint, ec);
if (!ec) {
std::cout << "Connected!" << std::endl;
}
else {
std::cout << "Failed to connect to address:\n" << ec.message() <<std::endl;
}
system("pause");
return 0;
}
, который должен выводить Failed to connect to address: и описание ошибки, но выводит Failed to connect to address: ╧юфъы■ўхэшх эх єёЄрэютыхэю, Є.ъ. ъюэхўэ√щ ъюья№■ЄхЁ юЄтхЁу чряЁюё эр яюфъы■ўхэшх.
В чём может быть проблема?
Visual Studio 2019
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Проблема в том, что Ваша консоль работает в кодировке 866, а строка выводится в cp1251. И там написано "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение." А вот почему - это уже другой вопрос, скорее всего никто на локалхосте не хочет Вашего подключения (да, очень часто такая программа как скайп захватывает 80 и 443 порт)