BOOL NistGetTime(LPFILETIME OutTime)
{
BOOL bOk;
struct hostent *host;
bOk = FALSE;
if (host = gethostbyname("time.nist.gov"))
{
SOCKET s;
in_addr ia;
CHAR IpText[32];
memcpy(&ia, host->h_addr, host->h_length);
lstrcpyA(IpText, inet_ntoa(ia));
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s != INVALID_SOCKET)
{
sockaddr_in sac;
memset(&sac, 0, sizeof(sac));
sac.sin_family = AF_INET;
sac.sin_port = htons(37);
sac.sin_addr.s_addr = inet_addr(IpText);
if (connect(s, (sockaddr*)&sac, sizeof(sac)) == 0)
{
ULONG nTime;
if (recv(s, (PCHAR)&nTime, sizeof(nTime), 0) == sizeof(nTime))
{
LONGLONG llt;
nTime = ntohl(nTime);
llt = 0x014F373BFDE04000;//1900.1.1
llt += LONGLONG(nTime) * 10000000;
memcpy(OutTime, &llt, sizeof(FILETIME));
bOk = TRUE;
}
}
closesocket(s);
}
}
return bOk;
}
注意时差
VC取网络UTC时间
最新推荐文章于 2024-07-24 11:16:44 发布