diff --git a/FunctionalModule/FunctionalModule.assets/NtpClient.gif b/FunctionalModule/FunctionalModule.assets/NtpClient.gif new file mode 100644 index 0000000000000000000000000000000000000000..c6c470079da8c7677c6ec1fc4785f83f59d76fdf Binary files /dev/null and b/FunctionalModule/FunctionalModule.assets/NtpClient.gif differ diff --git a/FunctionalModule/FunctionalModule.md b/FunctionalModule/FunctionalModule.md index 40ac15c285ca25bfd25a86caee6d2bc663e5a5f3..8fe9d4ff1d084043f05cd611f21f3d71f2eaa81a 100644 --- a/FunctionalModule/FunctionalModule.md +++ b/FunctionalModule/FunctionalModule.md @@ -6,13 +6,14 @@ ## 1、说明 -| 类名 | 功能 | 支持系统 | -| ---------------- | ---------------------------------- | -------- | -| QMWidget | 基于QWidget实现的自定义窗口模块 | windows | -| DeviceManagement | 串口、鼠标、键盘热插拔监测功能模块 | windows | -| QLog | Qt日志系统 | | -| QMPlayer | Qt实现的视频播放器界面Demo | windows | -| TestCrashHandler | windows下程序崩溃定位Demo | windows | +| 类名 | 功能 | 支持系统 | +| ---------------- | ---------------------------------- | -------------- | +| QMWidget | 基于QWidget实现的自定义窗口模块 | windows | +| DeviceManagement | 串口、鼠标、键盘热插拔监测功能模块 | windows | +| QLog | Qt日志系统 | | +| QMPlayer | Qt实现的视频播放器界面Demo | windows | +| TestCrashHandler | windows下程序崩溃定位Demo | windows | +| NtpClient | NTP时间同步客户端 | Windows、Linux | @@ -95,4 +96,22 @@ > > 7. 支持release模块下生成dump文件。 -![Dump](FunctionalModule.assets/Dump.gif) \ No newline at end of file +![Dump](FunctionalModule.assets/Dump.gif) + + + +### 1.6 NtpClient + +> **NTP时间同步客户端程序Demo** +> +> 1. 使用UDP进行通信; +> 2. 毫秒级时间精度; +> 3. 使用多个阿里云NTP时间同步服务器、腾讯云NTP时间同步服务器; +> 4. 支持windows、linux下修改系统时间。 +> +> **注意:**由于设置系统时间的功能比较重要,所以不管是Windows还是Linux都需要最高权限才可以。 +> +> 1. Windows下需要【以管理员身份运行】打开QtCreator或者编译后给NtpClient.exe设置权限【属性->兼容性->以管理员身份运行此程序】,否则无法修改系统时间; +> 2. Linux下编译后使用【sudo ./NtpClient】 运行程序。 + +![NtpClient](FunctionalModule.assets/NtpClient.gif) \ No newline at end of file diff --git a/FunctionalModule/FunctionalModule.pro b/FunctionalModule/FunctionalModule.pro index 23bb71ea44cbe444abc2bf3d8b4ccde915271736..fb313c1ce8112edc10d6729a9ab6401faf0f6d76 100644 --- a/FunctionalModule/FunctionalModule.pro +++ b/FunctionalModule/FunctionalModule.pro @@ -14,7 +14,7 @@ SUBDIRS += QMWidget # qt自定义窗口 SUBDIRS += DeviceManagement # 串口、鼠标、键盘热插拔检测模块 SUBDIRS += QLog # 自定义日志系统 SUBDIRS += QMPlayer # 视频播放器界面 -SUBDIRS += NtpClient # NTP时间同步客户端 +SUBDIRS += NtpClient # NTP时间同步客户端(需要管理员权限/超级用户权限打开) win32 { SUBDIRS += TestCrashHandler # windows下Qt程序崩溃问题定位Demo(只在msvc编译下有效) diff --git a/FunctionalModule/NtpClient/NtpClient.pro b/FunctionalModule/NtpClient/NtpClient.pro index bce3cf8bb59d23ae3976939d87bf4a41dcf7d332..10c6bb998361d65ecb9b6d440c847fa816975a4f 100644 --- a/FunctionalModule/NtpClient/NtpClient.pro +++ b/FunctionalModule/NtpClient/NtpClient.pro @@ -10,7 +10,9 @@ # @开发者 mhf # @邮箱 1603291350@qq.com # @时间 2022-08-09 15:52:56 -# @备注 注意:这个程序需要以管理员权限打开QtCreator编译,或者编译后给NtpClient.exe设置权限【属性->兼容性->以管理员身份运行此程序】,否则无法修改系统时间 +# @备注 注意:由于设置系统时间的功能比较重要,所以不管是Windows还是Linux都需要最高权限才可以。 +# Windows下需要【以管理员身份运行】打开QtCreator或者编译后给NtpClient.exe设置权限【属性->兼容性->以管理员身份运行此程序】,否则无法修改系统时间; +# Linux下编译后使用【sudo ./NtpClient】 运行程序。 #--------------------------------------------------------------------------------------- QT += core gui network diff --git a/FunctionalModule/NtpClient/ntpclient.cpp b/FunctionalModule/NtpClient/ntpclient.cpp index c9d2d58e9931e33f71ed80110b65f6f700bbe8ce..296e84eaefa8b6e6ca22113678010834e523d004 100644 --- a/FunctionalModule/NtpClient/ntpclient.cpp +++ b/FunctionalModule/NtpClient/ntpclient.cpp @@ -64,7 +64,6 @@ QByteArray toNtpPacket() { result[3] = char(precision & 0xff); qint64 currentLocalTimestamp = QDateTime::currentMSecsSinceEpoch(); - qDebug() << currentLocalTimestamp; result.append((const char *)¤tLocalTimestamp, sizeof(qint64)); return result;