qt4 — лучший способ часто пинговать некоторое оборудование в сети c ++ / Qt

У меня есть нестандартная аппаратная панель, к которой мне нужно подключиться.

Используя класс QAbstractSocket, мне удалось подключиться к нему и связаться с ним.

Но проблема в том, что если я отсоединяю кабель Ethernet после того, как будет достигнуто подключенное состояние, состояние не будет обновлено.

Поэтому мне нужен способ «пинговать» его каждые X секунд, чтобы убедиться, что соединение не потеряно.

Каков был бы лучший способ сделать это?

  • Например, 2-й поток, созданный после подключения, который будет часто «пинговать» устройство?

Этот вопрос относится не к части ping, а к части каждые X секунд.

0

Решение

Я не знаю, лучший ли это способ, но вот что я использовал.

QTimer Ваш злодей в этой ситуации. Вам не нужно получать другой поток для этого, так как он асинхронный (документация Qt настоятельно рекомендует не использовать потоки в этом случае вот например)

Я использовал QTimer, чтобы иметь возможность запускать определенный метод каждый интервал времени. (вы можете установить QTimer как одиночный снимок)

Я использовал другой QTimer, чтобы дождаться ответа после первого тайм-аута.

Используя сигнал / слоты и т.д … Это было действительно легко сделать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector