c语言 程序延时 校准,c语言实现系统时间校正工具代码分享
//*******************************************************************
//Time Protocol是一种非常简单的应用层协议。它返回一个未格式化的32位二进制数字,
//这个数字描述了从1900年1月1日午夜到现在的秒数。服务器在端口37监听协议请求,以
//TCP/IP或者UDP/IP格式返回响应。将服务器的返回值转化为本地时间是客户端程序的责任。
//这里使用的时间服务器是129.132.2.21,更多的服务器地址在“http://tf.nist.gov/service/time-servers.html
//网站列出。
//*******************************************************************
#include
#include
usingnamespacestd;
#pragmacomment(lib,"ws2_32")
voidSetTimeFromTP(ULONGulTime)
{
//Windows文件时间是一个64位的值,它是从1601年1月1日中午12:00到现在的时间间隔,
//单位是1/10000000秒,即1000万分之1秒
FILETIMEft;
SYSTEMTIMEst;
st.wYear=1900;
st.wMonth=1;
st.wDay=1;
st.wHour=0;
st.wMinute=0;
st.wSecond=0;
st.wMilliseconds=0;
SystemTimeToFileTime(&st,&ft);
//然后将TimeProtocol使用的基准时间加上已经逝去的时间,即ulTime
LONGLONG*pllLong=(PLONGLONG)&ft;
//注意文件时间单位是1/10000000秒,即1000万分之1秒
*pllLong+=(LONGLONG)10000000*ulTime;
//再将时间转化回来,更新系统时间
FileTimeToSystemTime(&ft,&st);
SetSystemTime(&st);
}
intmain(intargc,char**argv)
{
WSADATAwsaData;
WSAStartup(WINSOCK_VERSION,&wsaData);
SOCKETs=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(INVALID_SOCKET==s)
{
cout<
return0;
}
SOCKADDR_INservAddr;
servAddr.sin_family=AF_INET;
servAddr.sin_port=htons(37);
servAddr.sin_addr.S_un.S_addr=inet_addr("129.132.2.21");
if(-1==connect(s,(PSOCKADDR)&servAddr,sizeof(servAddr)))
{
cout<
return0;
}
//等待接收时间协议返回,最好使用异步IO,以便设置超时
ULONGulTime=0;
intiRecv=recv(s,(char*)&ulTime,sizeof(ulTime),0);
if(iRecv>0)
{
ulTime=ntohl(ulTime);
SetTimeFromTP(ulTime);
cout<
}
else
{
cout<
}
shutdown(s,SD_RECEIVE);
closesocket(s);
WSACleanup();
return0;
}
c语言 程序延时 校准,c语言实现系统时间校正工具代码分享相关推荐
- c语言修改windows系统时间,c语言实现系统时间校正工具代码分享
//******************************************************************* //Time Protocol是一种非常简单的应用层协议.它 ...
- c语言 程序延时 校准,Windows下C语言API修改系统时间,附自动校准时间源码
C语言Windows时钟的结构体如下: typedef struct _SYSTEMTIME { WORD wYear; /*年*/ WORD wMonth; ...
- 8255a初始化c语言程序,8255A的c语言程序.doc
8255A的c语言程序 8255A的c语言程序 [实例24]用8243扩展I/O端口 #include sbit ContrBit0=P1^0; sbit ContrBit1=P1^1; sbit C ...
- 单片机 中断秒表 c语言程序,51单片机c语言的秒表设计.doc
51单片机c语言的秒表设计.doc 课程设计报告 基于AT89C51单片机的秒表设计 院 系 电子信息工程学院 专 业 电子信息工程 1 姓 名 摘 要 本设计是设计一个单片机控制的多功能秒表系统. ...
- 怎么用centos7运行c语言程序_写C语言程序,如何提升程序运行效率?我的一点经验分享给你们!...
在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考: 1.C于代码在程序中的优化 现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码 ...
- 单纯形 c语言 程序,单纯形法完全c语言程序
单纯形法完全c语言程序 更新时间:2017/2/8 13:37:00 浏览量:566 手机版 单纯形法完全c语言程序,能运行 #include "math.h" #includ ...
- 程序设计基础(c语言),程序设计基础(C语言)
<程序设计基础(C语言)>由会员分享,可在线阅读,更多相关<程序设计基础(C语言)(26页珍藏版)>请在人人文库网上搜索. 1.程序设计基础(C语言),东北大学高级语言程序设计 ...
- c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...
不像高级编程语言,在C语言开发中,了解其编译链接过程显得相对重要,因为C语言是较为底层的语言,很多时候我们调试C程序或者解决其它问题都可能会涉及到C编译链接的相关知识,例如编译动态库或者静态库.下面我 ...
- c语言程序改错例题,C语言程序改错习题
C语言程序改错习题 行动是通向成功的唯一途径.以下是小编为大家搜索整理的C语言程序改错习题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 在考生文件夹下,给定程序MODI.C的功 ...
最新文章
- 在Ubuntu 14.04 64bit上生成ATS本地离线文档
- 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate
- highcharts常用配置说明
- 用VB.net开发.NET Micro Framework
- 神经网络 | BP神经网络介绍(附源代码:BP神经网络-异或问题)
- centos7;windows下安装和使用spice
- Angular应用带参数的路由实现
- 随手看的一本书《java微服务》,测试成功了其中的第一个样例
- P3651-展翅翱翔之时【贪心,环套树】
- poj2965 The Pilots Brothers' refrigerator
- 易助erp系统服务器安装,易助ERP系统操作培训教程
- java 类文件_Java类文件概述
- java开发利用jacob将word转pdf
- 遥感影像数据下载网站整理
- 软考c语言题库,【中级】软考题库每日一练|4.4
- js 56个民族 数据
- 看咪蒙真的有那么low吗?
- Low-poly低面建模(低像素多边形)
- 关于时间复杂度的详解
- 两条线段的交点 交点