From 8620ca8ba7ca2fc95f9ca329fca52fa53f5908bd Mon Sep 17 00:00:00 2001 From: mhf <1603291350@qq.com> Date: Tue, 9 Aug 2022 15:56:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD=EF=BC=9A=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=98=BE=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、再界面上显示连接成功的NTP服务器地址和Socket连接状态; 2、增加部分注释信息。 --- FunctionalModule/NtpClient/NtpClient.pro | 13 +++++++++++++ FunctionalModule/NtpClient/ntpclient.cpp | 5 ++++- FunctionalModule/NtpClient/ntpclient.h | 2 +- FunctionalModule/NtpClient/widget.cpp | 3 ++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/FunctionalModule/NtpClient/NtpClient.pro b/FunctionalModule/NtpClient/NtpClient.pro index 71cfe8d..edd5386 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 f10d876..bae1fc0 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 d382f33..1f204fb 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 969c705..3af4587 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() -- GitLab