【发布时间】:2014-03-14 11:35:58
【问题描述】:
我在使用 C++ 从 time.windows.com 获取在线日期时遇到问题。 我只是想从 C++ 中获得在线时间的标签。
我得到了参考,但我不知道如何转换成 C++ 代码。 http://nickstips.wordpress.com/2010/02/12/c-get-nist-internet-time/ 和 http://tf.nist.gov/tf-cgi/servers.cgi
请帮帮我
【问题讨论】:
我在使用 C++ 从 time.windows.com 获取在线日期时遇到问题。 我只是想从 C++ 中获得在线时间的标签。
我得到了参考,但我不知道如何转换成 C++ 代码。 http://nickstips.wordpress.com/2010/02/12/c-get-nist-internet-time/ 和 http://tf.nist.gov/tf-cgi/servers.cgi
请帮帮我
【问题讨论】:
rdate 是一个简单的网络协议,但您可能会发现很少有服务器提供此功能。
另一种可行的方法是使用来自 HTTP 服务器 See section 14.18 的 Date 标头。这是httpdate 的一篇文章,它使用了这种方法。
最后,SNTP 并没有那么难使用。它远比成熟的 NTP 简单。
【讨论】:
答案可能并不像您想象的那么简单。 基本上您可以采取三种方法:
从NTP server 获取日期/时间。 这种方法基本上意味着通过套接字连接到服务器(检查this 和this),或使用现有的C++ 库,如net-snmp、snmp++ 或this SNTP implementation
获取显示此值的 HTML 页面并解析它以获得您的值。最好为此使用现有的 HTML 解析器,例如 TinyXPath。我不会走这条路,因为它不必要地复杂。
使用像earthtools 这样的网络服务。您将在 URL 中传递必要的参数,并收到 XML 响应,然后您可以对其进行解析。
我意识到这些解决方案都不像您希望的那样简单,但是当仅限于 C++ 时,我目前能想到的只有它们。
【讨论】:
如果它对那里的某人有帮助,我有一个个人方法,它确实适用于我的日期和时间检查目的(使用 C++),不需要太精确(它用于跟踪大致多少天)非付费客户使用我的软件等)
我有一个带有单行 PHP 脚本 (echo date("d-m-Y")) 的 Web 服务器,我在 C++ 代码中使用 WinHTTP 调用它;解析结果字符串,瞧!
【讨论】: