首页  »   C++ Builder

怎么编写代码用国家授时中心服务器对本地电脑进行时间校准

网友分享于:2015-08-27  浏览:164次
如何编写代码用国家授时中心服务器对本地电脑进行时间校准
如题
------解决方案--------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
   //indy里的TidTime
  IdTime1->Host = "129.6.15.28";
  ShowMessage(DateTimeToStr(IdTime1->DateTime));
}
//---------------------------------------


------解决方案--------------------
本帖最后由 ccrun 于 2010-11-27 12:12:40 编辑
用Indy组件提供的IdSNTP组件,注意是IdSNTP组件。

在窗体上添加一个TIdSNTP组件,然后:
IdSNTP1->Host = "210.72.145.44";
IdSNTP1->ReceiveTimeout = 3000;
bool bSuccess = IdSNTP1->SyncTime();

ShowMessage(String().sprintf("较时%s", bSuccess? "成功": "失败"));


------解决方案--------------------
提供较时服务的服务器有时可能连接不上或者较时失败,换另外的较时服务器再试,比如time.windows.com等等。

IdSNTP组件的SyncTime方法,是从较时服务器上获取正确的时间,然后自动修改本地的时间。用其他的组件还需要再多一个设置时间的操作,这个时间是有误差的。
------解决方案--------------------
我的Windows 7就用系统默认的time.windows.com来自动较时,不过有时也会失败。

相关解决方案

最新解决方案