NTP сервер возвращает всегда одинаково — неправильная дата (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

Я не знаю, почему получить эту дату или почему пересчитать на неправильную дату. Где проблема? Я работаю в c ++ на windows.

0

Решение

tmit=ntohl((time_t)buf[4]); // get transmit time

Вы кастуете одного персонажа (buf[4]) к time_t, С unsigned char может иметь только 256 возможных значений, приведение к time_t может иметь только 256 возможных значений. Это не может быть правдой.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]