public static int Read(byte[] buf, int c, XmlMessage xm) { xm.MessageVersionNumber = buf[c++]; xm.AckNumber = BitConverter.ToUInt16(buf, c); c += 2; xm.Time = new DateTime(1970, 1, 1).AddMilliseconds(BitConverter.ToUInt64( new byte[] { buf[c++], buf[c++], buf[c++], buf[c++], buf[c++], buf[c++], 0, 0 }, 0)); xm.SubType = (XmlMessageSubTypeEnum)buf[c++]; xm.SequenceNumber = BitConverter.ToUInt16(buf, c); c += 2; xm.Length = BitConverter.ToUInt16(buf, c); c += 2; xm.Text = Encoding.ASCII.GetString(buf, c, xm.Length).Trim('\0'); // null terminated, sometimes? c += xm.Length; return c; }
public static XmlMessage Read(byte[] xm) { var mr = new XmlMessage(); Read(xm, 0, mr); return mr; }