您的位置: 首页 > IT文章 > 设立系统时间 系统时间网络更新 设立系统时间 系统时间网络更新 分类: IT文章 • 2023-11-16 21:26:36 设置系统时间 系统时间网络更新代码: //根据返回的时间设置系统时间 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(); }