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); }