私はクライアント/サーバーアプリケーションに取り組んでいます(tcpにqtを使用しています)。クライアントは、毎秒約 15 のメッセージをサーバーに送信する必要があります。問題は
、クライアントからのメッセージがグループで受信されることです。つまり、readyRead()
シグナルを取得してソケットからデータを読み取ると、バッファに複数のメッセージが存在します。
もちろん、これはシステムに遅延を引き起こします。
着信接続を別々のスレッド (接続ごとのスレッド) に配置しようとしましたが、改善はありませんでした。
また、シグナルを受信するたびにスレッドを上げようとしましたreadyRead()
が、やはり何もありません...
しかし、サーバーと同じPCで多数のクライアントを実行すると、すべて問題ないようです。ネットワーク経由で別の PC を使用すると、ラグが発生します... (使用するネットワークは 100Mbps LAN、メッセージは <200KB、PC 間の ping は <5msec であるため、ネットワークの問題ではないと思います)
クライアント側では、データを書き込むコードは非常に単純です。
tcpSocket->write(message.toUtf8());
tcpSocket->waitForBytesWritten();
tcpSocket->flush();
私もそれなしで試してみましflush()
たwaitForBytesWritten()
が、同じです...
編集: Qt 4.8.4 と Windows 7 および XP の使用
これを克服する方法を知っている人はいますか?
前もって感謝します!