我如何以二进制缓冲区的形式响应?
sock.on('data', function(data) {
console.log('DATA ' + sock.remoteAddress + ': ' + data);
let response = new Buffer("0000", "base64");
setTimeout(function() {
sockets.forEach(function(sock, index, array) {
sock.write(response);
});
}, 3000);
});
因为现在我得到的是十六进制字节:30303030
答案 0 :(得分:0)
是的,您得到30303030,因为字符“ 0”的十六进制为0x30。尝试
Buffer.from("00aabbcc","hex")
或
Buffer.from([0x0,0xaa,0xbb,0xcc])
,请不要使用新的Buffer(),它不安全且已弃用。 https://nodesource.com/blog/understanding-the-buffer-deprecation-in-node-js-10/