我正在做一个服务器解析音频文件的项目,然后告诉客户端根据服务器的公共时钟播放某些音频部分。理论上,我们需要高水平的同步,因为客户端节点可能会在彼此旁边播放音频,除了最小的延迟之外,所有延迟都可能产生人耳可察觉的声音偏移。我一直在尝试查找如何解决此问题的 c 代码示例,但运气不佳。
我已经阅读了许多关于时钟同步的维基百科文章。
http://en.wikipedia.org/wiki/Clock_synchronization
上述文章让我相信 PTP 将是我们在本地网络上实施的理想选择。但理想情况下,我们希望扩展我们的项目以允许通过互联网连接。这让我相信 NTP 会更好。我访问了 NTP.org,但发现它很难理解,而且如果我的应用程序位于未连接到 Internet 的本地网络上,我似乎根本无法使用 NTP。但后来我发现了这个帖子:
赛斯·罗伯逊的回答让我相信我错了。
您可以使用几行配置文件(每个客户端四行,服务器五行)来同步到所选系统的时钟。
问题是,他没有展示那些代码行,也没有给我指出一个我可以查看处理这些问题的代码的地方。
我一直在查看stackoverflow,发现了许多类似的问题,但没有一个给出令人满意的答案。
所以,在一堵文字墙之后(对不起,堆栈溢出问题建议说得很具体,并解释了我在提问之前所做的研究),我想简洁地陈述我的问题,希望有人可以帮助我出去:
在客户端/服务器软件模型中,如何在软件中保持准确的时钟同步以允许基于时间执行事件?
目前我们小组正在使用 UDP,但如有必要,我们愿意进行更改。
谢谢你的帮助。
编辑:我知道我需要保持时钟同步,问题是,我如何在软件中做到这一点。我正在寻找示例代码或指向可以找到有关此主题的示例代码的位置的超链接。结束编辑