diff --git a/FunctionalModule/NtpClient/NtpClient.pro b/FunctionalModule/NtpClient/NtpClient.pro index 71cfe8d6c80f70c659b88896418ed2e6f9506d94..edd5386f95c2762e7994a21e4685657a5c0eb473 100644 --- a/FunctionalModule/NtpClient/NtpClient.pro +++ b/FunctionalModule/NtpClient/NtpClient.pro @@ -1,3 +1,16 @@ +#--------------------------------------------------------------------------------------- +# @功能: NTP时间同步客户端程序Demo +# 1、使用UDP进行通信; +# 2、毫秒级时间精度; +# 3、使用多个阿里云NTP时间同步服务器、腾讯云NTP时间同步服务器。 +# @编译器: Desktop Qt 5.12.5 MSVC2017 64bit(也支持其它编译器) +# @Qt IDE: D:/Qt/Qt5.12.5/Tools/QtCreator/share/qtcreator +# +# @开发者 mhf +# @邮箱 1603291350@qq.com +# @时间 2022-08-09 15:52:56 +# @备注 +#--------------------------------------------------------------------------------------- QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets diff --git a/FunctionalModule/NtpClient/ntpclient.cpp b/FunctionalModule/NtpClient/ntpclient.cpp index f10d876ad4039ba1680f23ed14fc5845d747806a..bae1fc0b78e7b80a009e8b6188dbc7ceca629e91 100644 --- a/FunctionalModule/NtpClient/ntpclient.cpp +++ b/FunctionalModule/NtpClient/ntpclient.cpp @@ -4,6 +4,7 @@ #include #include #include +#include NtpClient::NtpClient(QObject *parent) : QObject(parent) { @@ -30,6 +31,8 @@ void NtpClient::close() void NtpClient::on_connected() { qDebug() << "连接成功!"; + QMetaEnum m = QMetaEnum::fromType(); // 获取QUdpSocket连接状态字符串 + emit updateData(QString("连接成功:%1 %2").arg(m_socket->peerName()).arg(m.key(m_socket->state()))); } void NtpClient::getTime() @@ -146,7 +149,7 @@ void NtpClient::on_readData() dateTime.setMSecsSinceEpoch(currentLocalTimestamp1); strTime = dateTime.toString("yyyy-MM-dd HH:mm:ss zzz"); - emit updateTime(strTime); + emit updateData(strTime); #else // 计算方式2:往返时延Delay=(T4-T1)-(T3-T2) 实际时间=程序处理时间(timer.elapsed()) + 服务器数据发出时间(T3)+ 通信时延(Delay) qint64 currentLocalTimestamp2 = timer.elapsed() + translateTimestamp + (((currentLocalTimestamp - originTimestamp) - (translateTimestamp - receiveTimestamp)) / 2); dateTime.setMSecsSinceEpoch(currentLocalTimestamp2); diff --git a/FunctionalModule/NtpClient/ntpclient.h b/FunctionalModule/NtpClient/ntpclient.h index d382f3312af94aed9cc677b5eda170d2f0b60426..1f204fb6665e60e9a47728d233a92d2dfa9c8cd2 100644 --- a/FunctionalModule/NtpClient/ntpclient.h +++ b/FunctionalModule/NtpClient/ntpclient.h @@ -32,7 +32,7 @@ public: void getTime(); signals: - void updateTime(const QString& time); // 更新时间 + void updateData(const QString& time); // 添加显示到界面上文本框中的信息 private slots: void on_connected(); diff --git a/FunctionalModule/NtpClient/widget.cpp b/FunctionalModule/NtpClient/widget.cpp index 969c70540afacc6471980152817ed587720a502f..3af4587c80aee3460f081859552e705841fd32a4 100644 --- a/FunctionalModule/NtpClient/widget.cpp +++ b/FunctionalModule/NtpClient/widget.cpp @@ -8,8 +8,9 @@ Widget::Widget(QWidget *parent) , ui(new Ui::Widget) { ui->setupUi(this); + this->setWindowTitle("NTP时间同步客户端"); - connect(&m_ntpClient, &NtpClient::updateTime, ui->textEdit, &QTextEdit::append); + connect(&m_ntpClient, &NtpClient::updateData, ui->textEdit, &QTextEdit::append); } Widget::~Widget()