C++设置系统时间及系统时间网络更新的方法
本文实例讲述了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++程序设计有所帮助。