У меня есть нестандартная аппаратная панель, к которой мне нужно подключиться.
Используя класс QAbstractSocket, мне удалось подключиться к нему и связаться с ним.
Но проблема в том, что если я отсоединяю кабель Ethernet после того, как будет достигнуто подключенное состояние, состояние не будет обновлено.
Поэтому мне нужен способ «пинговать» его каждые X секунд, чтобы убедиться, что соединение не потеряно.
Каков был бы лучший способ сделать это?
Этот вопрос относится не к части ping, а к части каждые X секунд.
Я не знаю, лучший ли это способ, но вот что я использовал.
QTimer Ваш злодей в этой ситуации. Вам не нужно получать другой поток для этого, так как он асинхронный (документация Qt настоятельно рекомендует не использовать потоки в этом случае вот например)
Я использовал QTimer, чтобы иметь возможность запускать определенный метод каждый интервал времени. (вы можете установить QTimer как одиночный снимок)
Я использовал другой QTimer, чтобы дождаться ответа после первого тайм-аута.
Используя сигнал / слоты и т.д … Это было действительно легко сделать.
Других решений пока нет …