serialize method

Uint8List serialize()

序列化为字节数组

Implementation

Uint8List serialize() {
  final buffer = ByteData(HEADER_SIZE + data.length);
  int offset = 0;

  // 写入magic (4字节, Big Endian)
  buffer.setInt32(offset, magic, Endian.big);
  offset += 4;

  // 写入version (2字节, Big Endian)
  buffer.setInt16(offset, version, Endian.big);
  offset += 2;

  // 写入size (2字节, Big Endian)
  buffer.setInt16(offset, size, Endian.big);
  offset += 2;

  // 写入cmdType (4字节, Big Endian)
  buffer.setInt32(offset, cmdType, Endian.big);
  offset += 4;

  // 写入reserved (20字节)
  for (int i = 0; i < 20; i++) {
    buffer.setUint8(offset + i, reserved[i]);
  }
  offset += 20;

  // 写入data
  final bytes = buffer.buffer.asUint8List();
  bytes.setRange(offset, offset + data.length, data);

  return bytes;
}