NTP服务器总是返回相同的错误日期(窗口)
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种可能的值。这不可能是对的。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 无法在初始化时将"日期"转换为"int"作为错误
- Rcpp/C++/R:比较日期时间矢量与日期时间时出错(错误:"运算符>"的不明确重载)
- Visual 2015 上的 std::get_time 不会在错误的日期失败
- "日期":'class'类型重新定义:错误(日历.cpp文件错误)
- 该代码的主要错误是什么,用于确定n`天后日期
- 在 CLI 中转换日期时间time_t错误处理C++是否安全
- C++ <ctime> 打印错误的日期
- 这是Zeller程序的代码.除了1111年2月31日、1111年6月31日这一通常是错误的日期外,一切都很顺利
- NTP服务器总是返回相同的错误日期(窗口)
- 提升公历日期格式会产生错误的结果
- C++提升库 - 正确处理日期序列内存分配错误
- c++ to_string日期错误
- c++ boost regex日期错误
- Boost 1.53本地日期时间编译器错误使用-std=c++0x
- Visual Studio 2012中Boost posix日期和时间的编译错误