zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C++设置系统时间及系统时间网络更新的方法

C++方法网络系统 设置 时间 更新
2023-06-13 09:15:29 时间

本文实例讲述了C++设置系统时间及系统时间网络更新的方法。分享给大家供大家参考。具体实现方法如下:

复制代码代码如下:

//根据返回的时间设置系统时间
voidsetTimeFromTP(ULONGulTime)

   FILETIMEft; 
   SYSTEMTIMEst; 
 
   //将基准时间转换成windows文件时间 
   st.wYear=1900; 
   st.wMonth=1; 
   st.wDay=1; 
   st.wHour=0; 
   st.wMinute=0; 
   st.wSecond=0; 
   st.wMilliseconds=0; 
 
   SystemTimeToFileTime(&st,&ft); 
 
   LONGLONG*pLLong=(LONGLONG*)&ft; 
   *pLLong+=(LONGLONG)10000000*ulTime; 
   FileTimeToSystemTime(&ft,&st); 
   ::SetSystemTime(&st); 

 
voidmain() 

   CInitSockinitSock; 
   SOCKETs=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 
   if(s==INVALID_SOCKET) 
   { 
       printf("socketerror..."); 
       return; 
   } 
   sockaddr_inservAddr={0}; 
   servAddr.sin_family=AF_INET; 
   servAddr.sin_port=::htons(37); 
   servAddr.sin_addr.S_un.S_addr=::inet_addr("69.25.96.13");//别用210.72.145.44这个IP,这是天朝的常TMD不返回值 
   if(SOCKET_ERROR==::connect(s,(sockaddr*)&servAddr,sizeof(servAddr))) 
   { 
       printf("connecterror.."); 
       return; 
   } 
 
   //接收时间 
   ULONGulTime=0; 
   intnRecv=::recv(s,(char*)&ulTime,sizeof(ulTime),0); 
   if(nRecv>0) //收到数据 
   { 
       ulTime=::ntohl(ulTime); 
       setTimeFromTP(ulTime); 
   } 
   else 
   { 
       printf("recverror..."); 
       return; 
   } 
     
   ::closesocket(s); 
   printf("*******************************"); 
   getchar(); 
}

希望本文所述对大家的C++程序设计有所帮助。