【问题标题】:splitting objects by bytes in nodejs [duplicate]在nodejs中按字节拆分对象[重复]
【发布时间】:2015-08-06 06:31:20
【问题描述】:

我有一个在 c++ 中运行的后端代码。我正在用 nodejs 编写前端代码。在打开与服务器的 TCP 连接时,我从中得到一个结构,格式如下:

struct Details {
    char short_name_[16];
    char name_[32];
}

我能够在前端接收它。但我想将它拆分回两个字符串。

我尝试将 short_name_ 随机分配给“aaaaaaaaaaaaaaa”,并将 name_ 随机分配给所有 'b'。当我在前端打印数据时

console.log('DATA ' + client.remoteAddress + ': ' + data);

输出是

 DATA 127.0.0.1: aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

我想将它们分成两个变量。由于 char 是 1 个字节,我尝试将它们转换为字符串对象并尝试拆分,但它不起作用,因为 JSON.stringify 将其转换为字符串,就像具有 16 个 97 和 32 个 98 的数组一样。 [97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,98,98,98,98,98,98,98,98,98 ,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98]

如果接收到的结构中有整数(4 个字节),我应该怎么做?

【问题讨论】:

    标签: javascript c++ node.js


    【解决方案1】:

    您可以使用内置对象Buffer

    如果没有尝试过以下示例,但它应该可以工作。 如果没有,那么您就有了自己尝试的起点;-)。

    var buf = new Buffer(data);
    var short_name = buf.toString('ascii', 0, 16);
    var name = buf.toString('ascii', 16, 32);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 2011-01-17
      • 2012-10-30
      • 2019-07-19
      相关资源
      最近更新 更多