我使用chrome.sockets发送udp消息。 我需要发送这个类似c的结构:
UInt16 ID=0,
UInt Size=20,
UInt16 CRC=0,
UInt16 MsgCount=0,
UInt32 App=0,
UInt32 Port=55555,
UInt32 Token=0
chrome.udp.send需要获取arrayBuffer。 我在代码中所做的是:
var arrayBuffer = new ArrayBuffer(20);
var dv = new DataView(arrayBuffer,0);
dv.setUint16(0,0);
dv.setUint16(2,20);
dv.setUint16(4,0);
dv.setUint16(6,0);
dv.setUint32(8,0);
dv.setUint32(12,55555);
dv.setUint32(16,0);
但是当我
console.log(arrayBuffer);
我得到了
ArrayBuffer {}
它是空的。
如何才能正确发送类似c的结构?
谢谢!
答案 0 :(得分:0)
ArrayBuffer
存储字节 - 任何字节值。
console.log()
期望人类可读的ASCII字符串,以便它可以显示它们。
不幸的是,记录ArrayBuffer
没有用 - 只要有一个ASCII NUL字符(并且你的数据在第一个字节中有一个),字符串就会停止。您需要编写一个不同的函数来接受ArrayBuffer
并生成一个Hex string
,您可以传递给console.log()