public int ReadMsg(byte[] msg) { byte[] headdata = msg.Skip(0).Take(8).ToArray(); //Head = DataChangeTools.ByteaToStruct<CSMessageHead>(headdata); //结构体序列化 展示弃用 Head = new CSMessageHead(headdata); if (msg.Length >= Head.MsgLength + 8) { Msg = msg.Skip(8).Take((int)Head.MsgLength).ToArray(); return((int)Head.MsgLength + 8); } else { throw new ArgumentOutOfRangeException("CSMessage读取异常 " + Head.ComId + " Data = " + Head.MsgId + " Data.Length =" + msg.Length); } }
public void WriteMsg(UInt16 _ComId, UInt16 _MsgId, byte[] _Msg) { Msg = _Msg; Head = new CSMessageHead(_ComId, _MsgId, (UInt32)Msg.Length); }