1、概述
源码放在文章末尾
该项目实现了 Ntp校时类 ,包含如下功能:
-
- 可设置Ntp服务器IP地址。
-
- 推荐用默认的阿里云时间服务器 ntp1.aliyun.com
-
- 收到时间信号发出。
-
- 时间精确到秒。
下面是demo演示:
项目部分代码如下:
#ifndef NTPCLIENT_H
#define NTPCLIENT_H
/**
* Ntp校时类
* 1. 可设置Ntp服务器IP地址。
* 2. 推荐用默认的阿里云时间服务器 ntp1.aliyun.com
* 3. 收到时间信号发出。
* 4. 时间精确到秒。
*/
#include <QObject>
#include <QDateTime>
class QUdpSocket;
#ifdef quc
class Q_DECL_EXPORT NtpClient : public QObject
#else
class NtpClient : public QObject
#endif
{
Q_OBJECT
public:
static NtpClient *Instance();
explicit NtpClient(QObject *parent = 0);
private:
static QScopedPointer<NtpClient> self;
QString ntpIP;
QUdpSocket *udpSocket;
private slots:
void readData();
void sendData();
void setTime_t(uint secsSince1Jan1970UTC);
public Q_SLOTS:
//设置Ntp服务器IP
void setNtpIP(const QString &ntpIP);
//获取日期时间
void getDateTime();
Q_SIGNALS:
//收到时间返回
void receiveTime(const QDateTime &dateTime);
};
#endif // NTPCLIENT_H