javascript / expert
Snippet
Binärdaten-Steuerfluss via TypedArray DataView Endianness-Parsing
DataView ermöglicht die Low-Level-Byte-Reihenfolge-Steuerung über ArrayBuffers. Durch Prüfung von Header-Byte-Markern kann die Endianness bei der Decodierung mehrbytiger Ganzzahlen dynamisch an den Steuerfluss angepasst werden.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function parseHeaderBuffer(buffer) {const view = new DataView(buffer);const magicByte = view.getUint8(0);if (magicByte !== 0x89) {return { status: 'REJECTED', reason: 'Invalid header magic byte' };}const isLittleEndian = view.getUint8(1) === 0x01;const payloadLength = view.getUint32(2, isLittleEndian);return { status: 'ACCEPTED', length: payloadLength, littleEndian: isLittleEndian };}const rawBuffer = new ArrayBuffer(6);const writer = new DataView(rawBuffer);writer.setUint8(0, 0x89);writer.setUint8(1, 0x01);writer.setUint32(2, 1024, true);console.log(parseHeaderBuffer(rawBuffer));
nodejs
Erklärung
1
const view = new DataView(buffer);
Instanziiert eine Zugriffsschnittstelle auf Byte-Ebene für rohe Speicherpuffer.
2
if (magicByte !== 0x89) {
Prüft die Binärsignatur, um die Verarbeitung ungültiger Payloads abzubrechen.
3
const payloadLength = view.getUint32(2, isLittleEndian);
Liest vorzeichenlosen 32-Bit-Wert unter dynamischer Endianness-Auswertung.