资源简介
vs2015+qt5.8.0的开发环境,对NTP协议的网络客户端的实现。服务器用的是win7系统配成的时间服务器,单独的时间服务器经测试也可以!
代码片段和文件信息
#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 :“ << QDateTime::currentDateTime().toString(“yyyy.MM.dd hh:mm:ss.zzz“);
qDebug() << “second :“ << QString::number(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() << s;
//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: “ << s;
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 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个文件信息
- 上一篇:SSH框架的留言板及回复功能
- 下一篇:数据通信与计算机网络 杨心强
相关资源
- linux下qt打包工具linuxdeployqt
- Qt调用WebService
-
基于Qt封装minibl
ink库-支持mingw和vc - 基于QT5实现一个简单好用的串口助手
- Qt Designer 2019-09-27.dmg
- QT使用excel
- 基于QGraphicsView实现的画图软件
- 简单的多屏播放器VLC+Qt
- Qt及QtQuick开发实战精解高清PDF
- qtcreator-gdb-7.4-MINGW32_NT-6.1-i686.tar
- QT5中使用QHttpQFtp.rar
- PlistDecoder
- qtcreator-gdb-7.4-MINGW32_NT-6.1-i686
- qt中英输入法 QInputContext的请在qt4.8.
- 基于linux QT开发的万年历程序
- win10串口调试助手
- QT5开发及 陆文周电子版
- QT5.拼图游戏源码加可执行程序
- qt+vlc+vlcsdk,其中自带介绍
- 基于QT的黑白棋项目
- Qt_Opencv_Camera.rar
- Qt131313135
- 很适合qt新手入门的教程
- qt二维地图 qt图像显示框架
- AQTime 6.20 破解版 (三)
- QT5开发及高清PDF,资料全
- Qt pop3接收邮件并附件程序
- myMp3_alin.zip
- calib_point
- Qt+Halcon封装迈德威视相机
评论
共有 条评论