Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Boost asio асинхронный resolve


Автор: Optimus1 13.8.2019, 12:21
Здравствуйте,
Подскажите пожалуйста, вот делаю async_resolve на boost asio, все работает, отправляется запрос на резолв, далее срабатывает handler. Но вопрос, как результат хендлера выаести из main ? К примеру, как вывести результат хендлера значение tcp::resolver::iterator endpoint_iterator в main ?
Код

void handler_resolve(const boost::system::error_code& error, tcp::resolver::iterator endpoint_iterator)
 { 
if (!error) { std::cout << «Резолв успешен» << endl;

tcp::endpoint endo_pointo = *endpoint_iterator;

cout << endo_pointo.address().to_string() << endl; 
} 
else 
{ 
std::cout << «Ошибка: » << error.message() << endl;
}
}

int main() 
{ string URL_name="http://www.games.ru"

boost::asio::io_service io_services;

tcp::resolver resolvers(io_services); boost::system::error_code ec;

tcp::resolver::query query(URL_name, «80»); resolvers.async_resolve(query, handler_resolve); 
} 
io_services.run(); 
}

Автор: kapusta007 17.7.2020, 23:10
возможно имеет смысл воспользоваться std::future<> , std::packed_task<>, std::promise<>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)