toBytes method
Serializes the packet to bytes.
Implementation
Uint8List toBytes() {
final dataLen = data.length;
final packetLen = headerSize + dataLen;
final buffer = ByteData(headerSize + dataLen);
// First word: length (11 bits) | flags (5 bits)
buffer.setUint16(
0, (packetLen & 0x07FF) | ((flags & 0x1F) << 11), Endian.big);
buffer.setUint16(2, session, Endian.big);
buffer.setUint16(4, acknowledgementNumber, Endian.big);
buffer.setUint16(6, remoteSequenceNumber, Endian.big);
buffer.setUint16(8, sequenceNumber, Endian.big);
if (dataLen > 0) {
buffer.buffer.asUint8List(headerSize).setAll(0, data);
}
return buffer.buffer.asUint8List();
}