如何设计精确定时的远程数据获取算法?

时间:2014-03-11 22:47:35

标签: c# .net network-programming synchronization fetch

有一台服务器每5秒发布一些XML数据以进行GET提取。该网址很简单,不会更改,例如www.XXX.com/fetch-data。数据每5秒精确地发布一个循环,并且不保证每次都是唯一的(但不管怎样都会经常变化)。除此之外,我还可以在www.XXX.com/fetch-time获取XML,其中存储服务器时间,格式为 unix time 。因此,不幸的是,获取时间分辨率只需几秒钟。

我需要的是一种同步我的客户端代码的方法,以便它在发布时尽可能地获取数据。如果我每隔5秒就会天真地获取一个循环,可能会发生的事情是,如果我真的不走运,我的循环可能会在服务器循环结束之前就开始,所以我基本上总是会得到5秒的旧数据。我需要一种机制来同时获得服务器和客户端循环。此外,我需要补偿延迟(ping),以便在服务器发布新数据之前实际发送获取请求。

服务器代码是专有的,无法更改,因此所有硬件都必须由客户端完成。此外,还有许多关于高精度时间测量和睡眠功能的其他问题,因此您可以从这些问题中抽象出来并将其视为已获批准。任何有关该算法的帮助都将非常感激。

0 个答案:

没有答案