サーバーとやり取りするアプリケーションに取り組んでいます。
起動中に、データベースからいくつかのデータをロードしています。データベースのサイズが大きい場合、アプリケーションは非常に長いループで実行されています。たとえば、db に 10 個の lac レコードがあり、ループが 10 lac 回繰り返されます。
一定の時間間隔 (ユーザーが設定) が 1 秒経過すると、アプリケーションはハートビート メッセージを別のスレッドでサーバーに送信します。
通常の場合、正常に動作していますが、アプリケーションが長いループで実行されると、ハートビート メッセージがサーバーによって受信されませんでしたが、返された書き込みバイトはQTcpSocket::write()
私が書いているものと同じ (成功) ですが、tcpDump
受信したバイトは表示されません。
利用した
tcpSocket->setSocketOption(QAbstractSocket::LowDelayOption , 1);
tcpSocket->setSocketOption(QAbstractSocket::KeepAliveOption , 600);