当前位置:   article > 正文

(ios-ntp) Get ntp time offset

get ntp time

源代码名称:ios-ntp
源代码网址:http://www.github.com/jbenet/ios-ntp

一、说在前面
1. 如何使用
(1) 下载ios-ntp源代码到本地
(2) 把库里需要的lib拉进自己的项目中
在我的项目里,我使用了
ios-ntp.h
ntp-log.h
ntp.hosts
NetAssociation.h
NetAssociation.m
NetworkClock.h
NetworkClock.m
NSDate+NetworkClock.h
NSDate+NetworkClock.m
GCDAsyncUdpSocket.h
GCDAsyncUdpSocket.m
(3) 由于我的项目是ARC环境,我相应地把添加的这些.m文件都更改为ARC环境
具体操作:<1> 选择项目的Target
<2> 选择 Build Phases
<3> 找到你要更改的类名
<4> 双击 编辑 fobjc-arc
(4) 在你需要获取ntp时间偏移量的类里添加头文件
#import “ios-ntp.h”
(5)遵循协议GCDAsyncUdpSocketDelegate

二、获取时间偏移量的方式
1.连续模式
<1> 你需要创建一个NetWorkClock

NetworkClock *networkClock = [NetworkClock sharedNetworkClock];
  • 1
<2> 创建成功之后,NTP进程开始轮询“ntp.hosts”文件中的时间服务器
<3> 当程序启动的时候,你就需要创建好,以便在你需要的时候可以直接用它同步时间
获取时间偏移量的操作是
  • 1
  • 2
  • 3
NSDate *timeOffset = networkClock.networkTime
  • 1

需要注意的是:上面这个步骤和初始化步骤中间需要有10s的时间间隔,以便服务器能够响应。

2.按需模式
必修创建一个NetAssociation(使用指定的时间服务器)并高速它从服务器获得的时间。设置代理,用委托方法得到时间信息。

NetAssociation *netAss = [[NetAssociation alloc] initWithServerName:@"time.apple.com"];
netAss.delegate = self;
[netAss sendTimeQuery];

- (void)reportFromDelegate{
    double timeOffset = netAss.offset;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/808216
推荐阅读
相关标签
  

闽ICP备14008679号