- 基本原理
QTcpSocket
是 Qt 库中用于 TCP 通信的类。要统计在线时长,关键思路是记录连接建立的时间和当前时间,通过计算两者的差值来得到在线时长。
- 实现步骤
- 记录连接建立时间:
- 在连接成功的信号槽函数中记录开始时间。例如,当
QTcpSocket
成功连接到服务器时,会发出connected()
信号。可以在对应的槽函数中使用QDateTime
类来记录连接时间。 - 示例代码如下:
收起
cpp
#include <QDateTime> #include <QTcpSocket> // 假设这是你的类,其中包含QTcpSocket对象tcpSocket class MyClass { public:MyClass(){connect(&tcpSocket, SIGNAL(connected()), this, SLOT(onConnected()));} private slots:void onConnected(){connectStartTime = QDateTime::currentDateTime();} private:QTcpSocket tcpSocket;QDateTime connectStartTime; };
- 在连接成功的信号槽函数中记录开始时间。例如,当
- 计算在线时长:
- 需要在适当的时候(比如断开连接或者定期检查)计算在线时长。可以通过获取当前时间
QDateTime:
- 需要在适当的时候(比如断开连接或者定期检查)计算在线时长。可以通过获取当前时间
- 记录连接建立时间: