QTcpSocket и QTimer для автоматического повторного подключения.

мы пытаемся реализовать приложение, которое извлекает данные с нескольких серверов, поэтому нам нужно несколько экземпляров QTcpSocket для управления соединениями для каждого хоста.

Мы сталкиваемся с некоторыми проблемами «дизайна»:

  • должны ли мы реализовать многопоточное решение для достижения цели? (возможно - да)
  • если Да, следует ли нам использовать «рабочий поток» (например, как в QThread примере moveToThread(socket_)) как лучшее решение или есть варианты получше? Нам нужно управлять тремя или более соединениями одновременно, поэтому мы не можем использовать waitingForConnection(...), потому что это блокирующая функция (насколько мы понимаем)
  • каков наилучший способ QTcpSocket повторного подключения? Может быть, QTimer, но как лучше всего его использовать...?

Заранее спасибо!

AD


person Andrea D'Ubaldo    schedule 04.12.2017    source источник


Ответы (1)


Что ж, у меня были некоторые вопросы по дизайну, подобные этим, но в моем случае основная причина заключалась в том, чтобы избежать задержки времени моего подключения из-за тяжелой обработки графического интерфейса, а также моя система связи через последовательный порт, но кроме этого, я думаю, что моя модель очень хорошо подходит для вашего случая, вот как я ее разработал, мои вопросы и ответы от UmNyobe:

QT QThread с QTimer и QSerial - родительские права

По сути, каждый новый экземпляр моего класса «CommCore» создает свой собственный серийный номер, таймер и поток и передает себя и своих дочерних элементов этому потоку, избегая вмешательства обработки графического интерфейса в синхронизацию связи.

person Gustavo Laureano    schedule 08.12.2017