VC下简单网络时间协议SNTP的客户端编程实现(PJ Naughter)

本文介绍使用PJNaughter的CSNTPClient类库进行网络时间同步的方法,并分享了不同SNTP服务器的测试结果及源程序下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用了PJ Naughter封装的的CSNTPClient类库,对测试程序稍加改动(提供了可以直接访问的SNTP的网址),如果在网,立刻可以看到结果并同步时钟:

		CString strSNTPServer = "133.100.11.8";			//SNTP服务器地址: 日本 福冈大学
		//CString strSNTPServer = "clock.cuhk.edu.hk";	//SNTP服务器地址: 香港中文大学
		//CString strSNTPServer = "time.nist.gov";		//SNTP服务器地址: 美国国家标准授时中心

当使用日本福冈大学时结果:(这里鄙视一下国内的NTP服务器,什么国家授时中心、清华大学什么的,没一个可用的!!倒是人家小日本、美国,无语。列表在这里,自己ping吧:http://www.douban.com/note/171309770/


源程序在下载:http://download.youkuaiyun.com/detail/dijkstar/7155945


最后PJ Naughter在codeproject的个人网址:http://www.codeproject.com/Articles/519/PJ-Naughter-s-Freeware-Library,上面有他的一些个人开源MFC类库。

SNTP协议客户端实现以及数据包格式: LI:跳跃指示器,警告在当月最后一天的最终时刻插入的迫近闺秒(闺秒)。 VN:版本号。 Mode:工作模式。该字段包括以下值:0-预留;1-对称行为;3-客户机;4-服务器;5-广播;6-NTP控制信息。NTP协议具有3种工作模式,分别为主/被动对称模式、客户/服务器模式、广播模式。在主/被动对称模式中,有一对一的连接,双方均可同步对方或被对方同步,先发出申请建立连接的一方工作在主动模式下,另一方工作在被动模式下; 客户/服务器模 式与主/被动模式基本相同,惟一区别在于客户方可被服务器同步,但服务器不能被客户同步;在广播模式中,有一对多的连接,服务器不论客户工作 在何种模式下,都会主动发出时间信息,客户根据此信息调整自己的时间。 Stratum:对本地时钟级别的整体识别。 Poll:有符号整数表示连续信息间的最大间隔。 Precision:有符号整数表示本地时钟精确度。 Root Delay:表示到达主参考源的一次往复的总延迟,它是有15~16位小数部分的符号定点小 数。 Root Dispersion:表示一次到达主参考源的标准误差,它是有15~16位小数部分的无符号 定点小数。 Reference Identifier:识别特殊参考源。 Originate Timestamp:这是向服务器请求分离客户机的时间,采用64位时标格式。 Receive Timestamp:这是向服务器请求到达客户机的时间,采用64位时标格式。 Transmit Timestamp:这是向客户机答复分离服务器的时间,采用64位时标格式。 Authenticator(Optional):当实现了NTP认证模式时,主要标识符和信息数字域就 包括已定义的信息认证代码(MAC)信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值