设置系统时间 系统时间网络更新

来源:互联网 发布:专业数据恢复多少钱 编辑:程序博客网 时间:2024/06/15 05:54

代码:

//根据返回的时间设置系统时间void setTimeFromTP(ULONG ulTime){FILETIME ft;SYSTEMTIME st;//将基准时间转换成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);}void main(){CInitSock initSock;SOCKET s = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (s == INVALID_SOCKET){printf("socket error...");return;}sockaddr_in servAddr = {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("connect error..");return;}//接收时间ULONG ulTime = 0;int nRecv = ::recv(s, (char*)&ulTime, sizeof(ulTime), 0);if (nRecv > 0)  //收到数据{ulTime = ::ntohl(ulTime);setTimeFromTP(ulTime);}else{printf("recv error...");return;}::closesocket(s);printf("*******************************");getchar();}


原创粉丝点击