我正在编写一个需要准确计时的应用程序。在询问this question后,我决定使用NTP或简单NTP进行调查。
iPhone有这些协议的开源实现吗?到目前为止,我已设法找到broken link。我也知道NTP有一个C reference implementation,所以我试着看看它能在iPhone上运行需要多少努力。
更新:我认为我有一个工作链接,但它是Wayback Machine,它只保存文本,而不是文件link that works。
答案 0 :(得分:18)
有一个名为ios-ntp的小型iOS库。我过去在一个项目中使用它,它似乎运行得相当好。
截至2013年中期原来的ios-ntp项目有一些缺失的部分,所以我将原始的svn存储库镜像到github。您可以在此处查看代码的工作版本:https://github.com/jessedc/iOS-ntp
答案 1 :(得分:5)
我可能首先从OpenNTPD中提取代码。
答案 2 :(得分:3)
如果您没有开发商业应用程序,请查看linux源代码。
答案 3 :(得分:2)
如果您需要使用NTP,但又不想信任iPhone(或iPod)时钟,您可以随时使用套接字(或Cocoa流)并自行查询服务器。这是最简单的网络交易之一。
答案 4 :(得分:2)
我不知道你正在创建什么应用程序,但如果信任时钟是其安全性的关键特性或(在游戏的情况下)作弊预防等,那么你需要非常小心开放协议就像NTP--骗子可以在你的NTP请求中做一个中间人,告诉你的应用他想让你听到什么。
如果这可能是一个问题,那么您需要建立自己可靠的事实来源,以便及时进入您的服务器(例如,建立您自己的时间服务,并使用PK加密签名您的回复),并设置您的应用程序的内部时钟在一些可接受的时钟偏差内。
答案 5 :(得分:2)
由于您正在开发商业应用程序,如果所有其他方法都失败,RFC 2030将描述SNTP协议。我没有关于不需要后台任务的商用库的信息,iPhone不允许你使用它。