-
大小: 12.89MB文件類型: .zip金幣: 1下載: 0 次發(fā)布日期: 2023-07-30
- 語(yǔ)言: 其他
- 標(biāo)簽: qt??NTP協(xié)議??
資源簡(jiǎn)介
vs2015+qt5.8.0的開發(fā)環(huán)境,對(duì)NTP協(xié)議的網(wǎng)絡(luò)客戶端的實(shí)現(xiàn)。服務(wù)器用的是win7系統(tǒng)配成的時(shí)間服務(wù)器,單獨(dú)的時(shí)間服務(wù)器經(jīng)測(cè)試也可以!
代碼片段和文件信息
#include?“CNetwork.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
CNetwork::CNetwork(QWidget?*parent)
:?QMainWindow(parent)
{
ui.setupUi(this);
Qobject::connect(ui.pushButton?SIGNAL(clicked())?this?SLOT(verifyTime()));
}
void?CNetwork::verifyTime()
{
// QString?ntpHost?=?“202.120.2.101“; //use?ntp?server?get?network?time
// QString?ntpHost?=?“192.168.11.132“;
QString?ntpHost?=?ui.IPlineEdit->text();
QUdpSocket?udp_sock;
udp_sock.connectToHost(ntpHost?123);
//request?server?time
qint8?LI?=?0;
qint8?VN?=?3;
qint8?MODE?=?3;
qint8?STRATUM?=?0;
qint8?POLL?=?4;
qint8?PREC?=?-6;
????QDateTime?epoch(QDate(1900?1?1));
qint32?second?=?quint32(epoch.secsTo(QDateTime::currentDateTime()));
////////////////////////////////////////////////////
QDateTime?preTime?=?QDateTime::currentDateTime();
qDebug()?<“currnet?time?:“?< qDebug()?<“second?:“?<
qint32?temp?=?0;
QByteArray?time_req(48?0);
time_req[0]?=?(LI?<6)?|?(VN?<3)?|?(MODE);
time_req[1]?=?STRATUM;
time_req[2]?=?POLL;
time_req[3]?=?PREC?&?0xff;
time_req[5]?=?1;
time_req[9]?=?1;
time_req[40]?=?(temp?=?(second?&?0xff000000)?>>?24);
temp?=?0;
time_req[41]?=?(temp?=?(second?&?0x00ff0000)?>>?16);
temp?=?0;
time_req[42]?=?(temp?=?(second?&?0x0000ff00)?>>?8);
temp?=?0;
time_req[43]?=?((second?&?0x000000ff));
QDateTime?cur_dt;
??????????????????????????????????????????????????????????????//block?wait?connect
if?(udp_sock.waitForConnected(3000))
{
udp_sock.flush();
//request?time
udp_sock.write(time_req);
QString?s?tmp;
for?(int?i?=?0;?i?48;?i++)
{
tmp.sprintf(“%.2X“?(unsigned?char)time_req[i]);
s.append(tmp);
tmp.sprintf(“?“);
s.append(tmp);
}
qDebug()?< ??????????????????????????????????????????????????????????//block?wait?reply
if?(udp_sock.waitForReadyRead(5000))
{
QByteArray?new_time;
QDateTime?epoch(QDate(1900?1?1));
QDateTime?unix_start(QDate(1970?1?1));
if?(udp_sock.pendingDatagramSize()?==?0)
{
QMessageBox::information(this?“msg“?“please?ensure?the?NTP?service‘s?ip!?“);
return;
}
while?(udp_sock.hasPendingDatagrams())
{
new_time.resize(udp_sock.pendingDatagramSize());
udp_sock.read(new_time.data()?new_time.size());
}
QString?s?tmp;
for?(int?i?=?0;?i?48;?i++)
{
tmp.sprintf(“%.2X“?(unsigned?char)new_time[i]);
s.append(tmp);
tmp.sprintf(“?“);
s.append(tmp);
}
qDebug()?<“rece?message:?“?< QByteArray?TransmitTimeStamp;
TransmitTimeStamp?=?new_time.right(8);
quint32?seconds?=?TransmitTimeStamp[0];
quint32?*a?=?&seconds;
quint8?temp?=?0;
for?(int?j?=?1;?j?<=?3;?j++)
{
seconds?=?seconds?<8;
temp?=?Transmi
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-07?14:28??CNetwork\
?????目錄???????????0??2017-06-06?14:36??CNetwork\.vs\
?????目錄???????????0??2017-06-06?14:36??CNetwork\.vs\CNetwork\
?????目錄???????????0??2017-06-06?14:36??CNetwork\.vs\CNetwork\v14\
?????文件???????30720??2017-06-07?14:28??CNetwork\.vs\CNetwork\v14\.suo
?????目錄???????????0??2017-06-07?14:28??CNetwork\CNetwork\
?????文件????????4737??2017-06-07?14:28??CNetwork\CNetwork\CNetwork.cpp
?????文件?????????310??2017-05-02?08:38??CNetwork\CNetwork\CNetwork.h
?????文件??????????68??2017-04-27?11:11??CNetwork\CNetwork\CNetwork.qrc
?????文件????????2416??2017-04-28?12:48??CNetwork\CNetwork\CNetwork.ui
?????文件????????9903??2017-05-04?10:50??CNetwork\CNetwork\CNetwork.vcxproj
?????文件????????2950??2017-04-27?11:11??CNetwork\CNetwork\CNetwork.vcxproj.filters
?????文件?????????633??2017-04-27?11:11??CNetwork\CNetwork\CNetwork.vcxproj.user
?????目錄???????????0??2017-06-07?14:28??CNetwork\CNetwork\Debug\
?????文件????????1709??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.Build.CppClean.log
?????文件????????2886??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.log
?????文件??????236941??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.obj
?????目錄???????????0??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\
?????文件????????5130??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\CL.command.1.tlog
?????文件??????105802??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\CL.read.1.tlog
?????文件????????1528??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\CL.write.1.tlog
?????文件?????????161??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\CNetwork.lastbuildstate
?????文件????????1854??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\custombuild.command.1.tlog
?????文件?????????420??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\custombuild.read.1.tlog
?????文件?????????614??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\custombuild.write.1.tlog
?????文件????????1680??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\li
?????文件????????3904??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\li
?????文件?????????646??2017-06-07?14:28??CNetwork\CNetwork\Debug\CNetwork.tlog\li
?????文件???????87494??2017-06-07?14:28??CNetwork\CNetwork\Debug\main.obj
?????文件???????89972??2017-06-07?14:28??CNetwork\CNetwork\Debug\moc_CNetwork.obj
?????文件????????5531??2017-06-07?14:28??CNetwork\CNetwork\Debug\qrc_CNetwork.obj
............此處省略37個(gè)文件信息
評(píng)論
共有 條評(píng)論