【问题标题】:What is the best way of setting a package prefix?设置包前缀的最佳方法是什么?
【发布时间】:2015-10-03 12:00:24
【问题描述】:

假设我有一个字节数组byte[] bytes,它用一些数据(客户端)初始化。

字节数组的内容可以是AB类型。

然后我想将阵列发送到我的服务器。我希望服务器能够识别数组包含的两种数据中的哪一种(AB

我考虑过在数组开头添加一个字节(因为它将只有几种类型。可能是 3)作为前缀,以便服务器可以识别类型,然后删除第一个字节并阅读内容。

我有理由不这样做吗?还有比这更好的方法吗?

附:我不想在我的数组之前发送另一条消息来通知下一条消息的类型

【问题讨论】:

  • 如果服务器在消息中无法识别,则说明存在设计缺陷。
  • 但这就是我想要做的

标签: java server client prefix identify


【解决方案1】:

我有理由不这样做吗?

没有。当然,没有任何理由......你所描述的问题。

还有比这更好的方法吗?

可能有,但你的解决方案已经足够好了......对于你所描述的问题。


我建议的唯一改进是设计服务器端代码,以便它实际上不需要从字节数组中删除“前缀”。让它从字节位置一而不是字节位置零开始读取消息内容。

【讨论】:

  • 我在考虑阵列的最小负载,以使其可被服务器识别。仅使用数组的一个字节听起来像是最佳解决方案……深入研究这些位只会使代码更加复杂。是的,当我说“删除”时,这几乎就是我的想法。我更像是一个“忽略”!
  • 您是否计算过通过将前缀编码为不到一个字节可以节省多少?假设数据速率为 1Mbit/秒,大概在 100,000 秒左右。在 LAN 上,您应该比这快 10 到 100 倍。问题:这真的值得担心吗?真的吗?
  • 用数字说话我明白我为什么要这样做。但以目前的速度,我认为不值得。
猜你喜欢
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2016-05-23
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 2014-07-30
相关资源
最近更新 更多