NTP 服务器 return 始终相同 - 日期错误 (windows)
NTP server return always same - wrong date (windows)
我想从 NTP 服务器获取时间。我找到了很多例子,但就我而言,我总是从服务器获得相同的日期。我不知道出了什么问题。我想获得正确的日期和时间,但我没有。
unsigned char buf[1024];
...
tmit=ntohl((time_t)buf[4]); // get transmit time
//tmit=ntohl((time_t)buf[10]); //try this too
time_t tempa = tmit;
printf("Recieve time: %s",ctime(&tempa));
...
这是我的输出:
Recieve time: Thu Jan 01 01:00:00 1970
我不知道为什么会收到这个日期或为什么重新计算到错误的日期。问题在哪里?我在 windows.
上使用 C++
tmit=ntohl((time_t)buf[4]); // get transmit time
您正在将单个字符 (buf[4]
) 转换为 time_t
。由于 unsigned char
只能有 256 个可能的值,因此转换为 time_t
只能有 256 个可能的值。这不对。
我想从 NTP 服务器获取时间。我找到了很多例子,但就我而言,我总是从服务器获得相同的日期。我不知道出了什么问题。我想获得正确的日期和时间,但我没有。
unsigned char buf[1024];
...
tmit=ntohl((time_t)buf[4]); // get transmit time
//tmit=ntohl((time_t)buf[10]); //try this too
time_t tempa = tmit;
printf("Recieve time: %s",ctime(&tempa));
...
这是我的输出:
Recieve time: Thu Jan 01 01:00:00 1970
我不知道为什么会收到这个日期或为什么重新计算到错误的日期。问题在哪里?我在 windows.
上使用 C++tmit=ntohl((time_t)buf[4]); // get transmit time
您正在将单个字符 (buf[4]
) 转换为 time_t
。由于 unsigned char
只能有 256 个可能的值,因此转换为 time_t
只能有 256 个可能的值。这不对。