internal static void DecompressPacket(byte[] compressedData, out MemoryStream outStream) { byte[] decompressed = new byte[1000]; LZF decompressor = new LZF(); int decompressedLength = decompressor.Decompress(compressedData, compressedData.Length, decompressed, decompressed.Length); decompressed = decompressed.Take(decompressedLength).ToArray(); outStream = new MemoryStream(decompressed); outStream.Position = 0; }
internal static void CompressPacket(Packet packet, out MemoryStream outStream) { MemoryStream memoryStream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(memoryStream, packet); byte[] input = memoryStream.ToArray(); byte[] output = new byte[input.Length + 1]; LZF compressor = new LZF(); int outLength = compressor.Compress(input, input.Length, output, output.Length); output = output.Take(outLength).ToArray(); outStream = new MemoryStream(output); memoryStream.Close(); outStream.Position = 0; }