如何同步两个程序的定时器
How to synchronize timers of two programs
我正在制作一个有客户端和服务器的应用程序。客户端将向服务器发送一些坐标,服务器将使用这些坐标来移动机器人。我想要的是同步定时器,用于对日志数据进行时间戳记,以便我可以比较输入与输出。通信是通过TCP/IP完成的,客户端是用C++完成的,而服务器是RAPID(ABB机器人编程语言)。我的问题是定时器没有正确同步。
现在当两者之间建立连接时计时器开始:
服务器端:
监听连接;
启动定时器;
客户端:
连接到服务器;
启动定时器;
这不起作用。有没有一种技术可以确保定时器同步?
注意:服务器只能通过局域网连接。
您需要客户端和服务器之间的协议来传递时间戳。
现在,大概您有一个发送坐标的协议。您需要以某种方式扩展它以允许一侧将计时器信息发送到另一侧。
最简单的方法是您是否具有双向通信能力。在那种情况下,客户端确实
- 连接到服务器
- 一直询问直到服务器出现
- 服务器说 "yes I'm here, the time is 1:00"
- 客户端开始发送坐标
如果服务端没有办法发送给客户端,那么客户端需要时不时的发送一个时间戳,服务端识别为时间,而不是坐标。在第一次发生这种情况之前,两者不会同步。
我正在制作一个有客户端和服务器的应用程序。客户端将向服务器发送一些坐标,服务器将使用这些坐标来移动机器人。我想要的是同步定时器,用于对日志数据进行时间戳记,以便我可以比较输入与输出。通信是通过TCP/IP完成的,客户端是用C++完成的,而服务器是RAPID(ABB机器人编程语言)。我的问题是定时器没有正确同步。
现在当两者之间建立连接时计时器开始:
服务器端: 监听连接; 启动定时器;
客户端: 连接到服务器; 启动定时器;
这不起作用。有没有一种技术可以确保定时器同步?
注意:服务器只能通过局域网连接。
您需要客户端和服务器之间的协议来传递时间戳。
现在,大概您有一个发送坐标的协议。您需要以某种方式扩展它以允许一侧将计时器信息发送到另一侧。
最简单的方法是您是否具有双向通信能力。在那种情况下,客户端确实
- 连接到服务器
- 一直询问直到服务器出现
- 服务器说 "yes I'm here, the time is 1:00"
- 客户端开始发送坐标
如果服务端没有办法发送给客户端,那么客户端需要时不时的发送一个时间戳,服务端识别为时间,而不是坐标。在第一次发生这种情况之前,两者不会同步。