Я изменил реализацию проверки связи ICMP (https://think-async.com/Asio/asio-1.18. ... p/ping.cpp) для одновременной проверки связи с несколькими пунктами назначения, а не последовательно, как показано. в примере. Я пробовал использовать std::thread и std::async(вместе с фьючерсами).
Но это работает так, как ожидалось, только когда все пункты назначения недоступны. Нельзя ли это сделать одновременно? Я отключил повторный пинг по результату/тайм-ауту в классе пингера
const char* ping(const char* destination)
{
asio::io_context io_context;
pinger p(io_context, destination);
io_context.run();
return p.get();
}
int main()
{
std::future a1 = std::async(std::launch::async, ping, "10.2.7.196");
std::future a2 = std::async(std::launch::async, ping, "10.2.7.19");
std::cout
Подробнее здесь: https://stackoverflow.com/questions/634 ... boost-asio
Параллельная проверка связи (ICMP) с несколькими пунктами назначения с использованием Boost.asio ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение