设计客户端/服务器通信协议的最佳实践

时间:2011-06-01 10:02:28

标签: client-server server-communication

我目前正在将服务器功能集成到运行复杂测量系统的软件中。 客户端将是来自另一家公司的软件,该软件将定期向我的软件询问系统的当前状态。

现在我的问题是:设计协议以提供这些状态信息的最佳方法是什么。有许多不同的状态需要传输。

我已经看到了解决方案,它们生成不同的状态标志,然后仅传输例如32位数字,其中每个位代表不同的状态。

示例:

  • 位0 - 系统在线
  • 第1位 - 正在进行的测量
  • 位2 - 温度稳定 ... 等等。

此解决方案将产生非常少的流量。虽然它对我来说似乎非常不灵活,也很难调试。

另一方面我认为可以做的是将每个状态转移到州名称之前:

实施例: #SystemOnline#1#MeasurementInProgress#0#TemperatureInProgress#0#.....

此解决方案将产生更多流量。但它似乎更灵活,因为每个州的转移顺序无关紧要。它也应该更容易调试。

有没有人从经验中知道解决问题的好方法,或者有人知道我能找到最佳实践的良好知识来源。我只是想阻止尝试重新发明轮子

1 个答案:

答案 0 :(得分:0)

一旦您向远程系统发出网络请求,等待响应,并接收并解码响应,响应是32位还是32K几乎不重要。你每秒会产生多少次这种流量?如果小于1,则更重要。因此,使用最容易实现的任何内容,对客户端来说最自然,无论是字符串还是XML。