Проблема связи с локальным хостом TCP / IP - PullRequest
0 голосов
/ 12 ноября 2018

Я использую классы Qt и QTcpSocket для разработки двух консольных приложений, взаимодействующих друг с другом через сокет в localhost на одном компьютере. Это должно быть сделано через сокет для обратной совместимости.

Во время выполнения третьему приложению требуется много ресурсов ЦП, использование которого быстро достигает 100% в течение нескольких секунд. Я не могу избежать этого поведения. В этой ситуации связь получает задержку (то есть строка, отправленная из приложения A, принимается приложением B много сотен мс позже).

Очевидно, что сокет работает в определенном потоке, и я установил приоритет потока в TimeCritical:

QThread::currentThread()->setPriority(QThread::TimeCriticalPriority);

Знаете ли вы, как решить эту проблему? Спасибо

Здесь у вас есть краткий пример того, что происходит. Простой сервер и клиент общаются друг с другом. Каждый раз, когда сервер отправляет новое сообщение, запускается истекший таймер. Если клиент отвечает позже, чем через 300 мс, возникает исключение. К сожалению, я не могу поделиться с вами третьим приложением (которое требует много ресурсов процессора, так как это лицензионная программа). В любом случае, я полагаю, что если вы сможете за несколько секунд насытить все процессоры, проблема должна появиться.

...