Отправлять и получать шестнадцатеричные коды через сокет nodejs - PullRequest
0 голосов
/ 28 мая 2019

Я отправляю шестнадцатеричный код на компьютер в приложении сокета nodejs и получаю шестнадцатеричный ответ из кода ниже:

socket.on('data', function(data){
  console.log('Socket:'+Buffer.from(data).toString('hex'));
});

В консоли я получаю это: 0104000100150104125d2befbfbdefbfbdefbfbdefbfbdefbfbdefbfbffbbffbf6*

01 04 00 01 00 15 01 04 12 5D 2B FF FF FF FF FF FF FF FF FF FF FF FF FF 80 00 FF FF

Я не понимаю, почему существуют дополнительные данные.

1 Ответ

0 голосов
/ 28 мая 2019

Кажется, данные являются строкой, а не буфером.

просто попробуйте этот код

const data = Buffer.from('01 04 00 01 00 15 01 04 12 5D 2B FF FF FF FF FF FF FF FF FF FF FF FF 80 00 FF FF'.split(' ').map(x => parseInt(x, 16)));
console.log(Buffer.from(data).toString('hex'));
const str = data.toString(); // <- problem!!!
console.log(Buffer.from(str).toString('hex'));

Вы не можете отправить двоичный буфер напрямую, просто преобразуйте в шестнадцатеричную строку до и в буфер после, например.

Читать эту тему Буферы узла, от utf8 до двоичного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...