我需要我的软件与NTP服务器通信以确定本地时钟偏移.我尝试过使用org.apache.commons.net.ntp软件包,但是在Windows上运行时它的实现相当差,因为使用System.currentTimeMillis()来确定NTP数据包交换之前和之后的时间.您可能知道或者可能不知道,此值仅在系统时钟滴答时更新,在大多数现代Win2k3服务器上为64Hz或每15.625ms.这极大地限制了时钟偏移计算的准确性.
Ntpd使用CPU高频定时器在系统时钟周期之间进行插值,并实现更高的分辨率时间.您是否知道使用此技术或类似技术的Java实现?或者您知道除Apache之外的任何其他NTP实现吗?
Jan*_*bal 10
由于此问题在Google上的"Java NTP客户端"排名很高:
Android有一个很好的,紧凑的Apache许可的简单NTP客户端实现:android.net.SntpClient.
它需要被修改为在非Android java上运行,但这应该是微不足道的,因为代码大约是100行代码加上另外100行详细注释,除了Android系统时钟之外没有外部依赖 - 并且偶然,它已准备好接受相对定时器,nanoTime()因为它已经使用了这样的相对定时器.
| 归档时间: |
|
| 查看次数: |
27944 次 |
| 最近记录: |