示例#1
0
        public static MessageBufferPackage ParseFromMessage(Message message)
        {
            if (message.Class != (byte)MessageClass.Package)
            {
                throw new Exception("Not A Package Message!");
            }

            var buffer = new MessageBufferPackage();

            using (var mem = new MemoryStream(message.Content))
            {
                using (var br = new BinaryReader(mem))
                {
                    var count = br.ReadInt32();
                    for (var i = 0; i < count; i++)
                    {
                        byte   type    = br.ReadByte();
                        int    flag    = br.ReadInt32();
                        int    size    = br.ReadInt32();
                        byte[] content = br.ReadBytes(size);
                        buffer.AddMessage(new Message((MessageClass)type, flag, content));
                    }
                }
            }

            return(buffer);
        }