111,098
社区成员




public struct DemoParametersFrame
{
public int CMD_ID;
public int Total_Size;
public int Param_ID;
public int Param_Size;
public byte[] Param_Data; //非固定长度,
public void WriteToStream(Stream stream)
{
if (Param_Size < 0 || Param_Size > (Param_Data?.Length ?? 0)) throw new InvalidOperationException();
if (Total_Size != 4 * sizeof(int) + Param_Size) throw new InvalidOperationException();
using (var writer = new BinaryWriter(stream, Encoding.UTF8, leaveOpen: true))
{
writer.Write(CMD_ID);
writer.Write(Total_Size);
writer.Write(Param_ID);
writer.Write(Param_Size);
if (Param_Data != null) writer.Write(Param_Data, 0, Param_Size);
}
}
}