0

我有两个程序(主机和从机)通过一个 com 端口进行通信。在最简单的情况下,主机向从机发送命令并等待响应,然后再次执行。但这意味着每一方都必须为每笔交易等待对方。所以我使用了一个队列,以便在第一个响应返回之前发送第二个命令。这使事情流动得更快。

但是我需要一种计量队列使用的方法,以便在任何时候路由中的命令/响应对都不会超过 N 个。因此,例如,如果 N 为 3,我将等待发送第四个命令,直到收到第一个响应,等等。它必须跟踪哪个响应与哪个命令对应。

我的一个想法是用整数模计数器标记每个命令,该计数器也与响应一起返回。这将确保命令和响应始终正确配对,并且我可以进行模比较以能够在响应之前始终测量命令 N。

我想知道,有没有更好的方法?这不是很常见的事情吗?

(我正在使用 Python,但这并不重要。)

4

1 回答 1

1

使用序列号和模运算实际上是一种非常常见的方式来确认收到的消息并告诉发送者何时可以发送更多消息 - 参见例如http://en.wikipedia.org/wiki/Sliding_window_protocol。对您来说不幸的是,明显的例子 TCP 不寻常,因为它使用基于字节计数而不是消息计数的序列号,但原理大致相同 - TCP 只是具有额外程度的灵活性。

于 2013-11-24T06:01:57.210 回答