【问题标题】:Endianness in binary processing in JSJS中二进制处理的字节序
【发布时间】:2023-03-20 15:57:01
【问题描述】:

我正在用 JS 编写 AMF(动作消息格式)协议的实现。解析来自网络的字节流时是否需要考虑字节顺序?我问的原因是,AFAIK,现在大多数系统都是小端的,但显然所有通过 TCP/IP 传输的数据都是大端的(网络字节顺序)。

【问题讨论】:

  • 好像它已经不那么痛苦了,我在二进制处理方面有点不习惯,而且我还没有接受过完整的正规 CS 教育。温柔点:)
  • 一切都好,但我很确定 TCP 堆栈会为您解决这个问题。这会导致特定问题吗?您可以发布有关问题的代码/更多信息,还是只是在搜索更多信息?
  • 没有具体问题 - 只是想谨慎 :)
  • 没有问题。是的,正如我所说,我认为 TCP 堆栈应该处理这个问题。但会因设备而异。 x86 是小端,我很确定 ARM 是大端。希望有人可以更多地阐明这一点。

标签: javascript binary endianness


【解决方案1】:

如果您正在传输字节,它们被视为字节。字节序由数据源的实现决定,因此可以是大字节序,也可以是小字节序。

无论如何,公认的 TCP/IP 传输规范是大端,并且大多数传输都遵循此规则。

我建议确定源数据字节顺序的最简单方法是继续尝试解析它并将结果与​​样本进行比较。

【讨论】:

    猜你喜欢
    • 2011-02-04
    • 2010-11-14
    • 2018-05-02
    • 2012-10-03
    • 2018-08-10
    • 2014-01-19
    • 2018-12-11
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多