Отправить c-like структуру как arrayBuffer через сокет udp chrome
Я использую chrome.sockets для отправки сообщений udp. мне нужно отправить эту c-like структуру:
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-like структуру?
Спасибо!
1 ответ
ArrayBuffer
хранит байты - любые байтовые значения вообще.
console.log()
ожидает читаемых человеком строк ASCII, чтобы он мог их отображать.
К сожалению, регистрация ArrayBuffer
не помогает - как только появляется символ ASCII NUL (а ваши данные содержат его в самом первом байте), строка останавливается. Вам нужно будет написать другую функцию, чтобы принять ArrayBuffer
и произвести Hex string
что вы можете передать console.log()