系统时间同步到互联网时间
同步时间问题看似有些复杂,但是在搜索了一个服务器网址时发现一个人写的非常简洁、明了:
1.连接到世界时间服务器
2.接收服务器时间
3.设置系统时间并关闭连接
我在寻找一些函数源码时从一个解决方案里看到了一些时间服务器可供选择使用
time-a.nist.gov 129.6.15.28
time-b.nist.gov 129.6.15.29
time-a.timefreq.bldrdoc.gov 132.163.4.101
time-b.timefreq.bldrdoc 132.163.4.102
time-c.timefreq.bldrdoc.gov 132.163.4.103
utcnist.colorado.edu 128.138.140.44
time.nist.gov 192.43.244.18
time-nw.nist.gov 131.107.1.10
nist1.datum.com 66.243.43.21
nist1-dc.glassey.com 216.200.93.8
nist1-ny.glassey.com 208.184.49.9
nist1-sj.glassey.com 207.126.98.204
nist1.aol-ca.truetime.com 207.200.81.113
nist1.aol-va.truetime.com 205.188.185.33
在连接以上IP之后可以直接接收数据,但接收这些数据有个flag需要设置一下
代码片段
char data[4];
recv (m_sock, data, 4, MSG_PEEK);
MSG_PEEK标志代表预先接收下一条数据,再详细的解释目前水平未到位,没理解到那么深
从服务器接收到的data数据是一个4字节的整型数字(注意系统的字节序),代表从1900年1月1日 0时0分0秒开始计算到现在时间经过的秒数