从缓冲区中检索 FLOAT、DOUBLE、INT 或 BOOL 值

Retrieving FLOAT, DOUBLE, INT or BOOL values from Buffer

亲爱的社区,下午好,

我正在从事一个网络项目,我通过 UDP 套接字从名为 VDMX 的软件接收数据,并尝试从缓冲区解析上述数据类型。

在我的 node.js 应用程序中,我使用以下套接字客户端接收值没有问题:

const dgram = require('dgram');
const server = dgram.createSocket('udp4');

server.on('error', (err) => {
  console.log(`server error:\n${err.stack}`);
  server.close();
});

server.on('message', (msg, rinfo) => {
  console.log(msg.toString());
});

server.on('listening', () => {
  const address = server.address();
  console.log(`server listening ${address.address}:${address.port}`);
});

server.bind(1235);

但是从软件中检索到的数据,我不确定如何从作为 string/buffer 发送的数据中解析必要的部分。

在每次发送的数据中,默认发送的数据中都有一个OSC信息的前缀信息,如'/lux'。当我选择不同的数据类型时,这是我在 Node.js 控制台中收到的内容:

如果我选择浮动:

/lux,fB�F�
/lux,fB��
/lux,fB�ɘ
/lux,fB��

如果我选择双:

/lux,d@L ��ϑL
/lux,d@L��S�
�|�x,d@K�f
/lux,d@K�Y�)�

如果我选择 64 位整数:

/lux,h1
/lux,h0
/lux,h/
/lux,h.

如果您能指导我如何从这些缓冲区中获取值,我将不胜感激。非常感谢您!

使用msg.readDoubleLE(offset)msg.readFloat32LE(offset)和类似的函数

https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_buf_readdoublele_offset