【问题标题】:Best Practice in designing a client/server communication protocol设计客户端/服务器通信协议的最佳实践
【发布时间】:2011-06-01 10:02:27
【问题描述】:

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

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

我见过一些解决方案,它们生成不同的状态标志,然后仅传输例如 32 位数字,其中每个位代表不同的状态。

例子:

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

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

我认为可以做的另一个是转移每个州,前面加上州名:

示例: #SystemOnline#1#MeasurementInProgress#0#TemperatureInProgress#0#.....

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

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

【问题讨论】:

    标签: client-server server-communication


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 2020-11-11
      • 2011-02-15
      • 2020-08-15
      • 1970-01-01
      • 2010-10-01
      • 2013-08-20
      • 2014-07-27
      • 2012-09-25
      相关资源
      最近更新 更多