Я хочу получить время с 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.
tmit=ntohl((time_t)buf[4]); // get transmit time
Вы кастуете одного персонажа (buf[4]
) к time_t
, С unsigned char
может иметь только 256 возможных значений, приведение к time_t
может иметь только 256 возможных значений. Это не может быть правдой.
Других решений пока нет …