serialize method
序列化为字节数组
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;
}