在nodejs中按字节拆分对象[重复]

Posted

技术标签:

【中文标题】在nodejs中按字节拆分对象[重复]【英文标题】:splitting objects by bytes in nodejs [duplicate] 【发布时间】: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 个字节),我应该怎么做?

【问题讨论】:

【参考方案1】:

您可以使用内置对象Buffer。

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

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

【讨论】:

以上是关于在nodejs中按字节拆分对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥要在 C++ 中按值传递对象 [重复]

在kotlin的自定义类型arraylist中按id搜索对象[重复]

在C ++中的继承上下文中按值传递对象[重复]

如何将 json 输出保存在 String 对象中。重复数据写入所有拆分的文件中?

NodeJS通过键的值在数组中查找对象[重复]

在大熊猫DataFrame中按组删除异常值的更快方法[重复]