igmpMessage(): Coder<IgmpMessage>
Creates a coder for an IGMPv2 message (RFC 2236) — the fixed 8-byte
type/maxResponseTime/checksum/groupAddress structure.
Decode a known General Query
Decode a known General Query
import { assertEquals } from "@std/assert"; import { IGMP_TYPE, igmpMessage } from "@binstruct/igmp"; // deno-fmt-ignore const wire = new Uint8Array([ 0x11, 0x64, 0xee, 0x9b, 0x00, 0x00, 0x00, 0x00, ]); const [decoded, read] = igmpMessage().decode(wire); assertEquals(read, 8); assertEquals(decoded.type, IGMP_TYPE.MEMBERSHIP_QUERY); assertEquals(decoded.maxResponseTime, 100); assertEquals(decoded.checksum, 0xee9b); assertEquals(decoded.groupAddress, 0);
Round-trip a Leave Group message
Round-trip a Leave Group message
import { assertEquals } from "@std/assert"; import { IGMP_MESSAGE_SIZE, IGMP_TYPE, igmpMessage } from "@binstruct/igmp"; const coder = igmpMessage(); const message = { type: IGMP_TYPE.LEAVE_GROUP, maxResponseTime: 0, checksum: 0x1234, groupAddress: 0xe0000005, }; const buffer = new Uint8Array(IGMP_MESSAGE_SIZE); const written = coder.encode(message, buffer); const [decoded, read] = coder.decode(buffer); assertEquals(written, IGMP_MESSAGE_SIZE); assertEquals(read, IGMP_MESSAGE_SIZE); assertEquals(decoded, message);
Coder<IgmpMessage>
A coder for IgmpMessage values.