簡単なプロキシ サーバーを作成しました。正常に動作しますが、gzip 解凍は動作しません:
- マジックナンバーが正しくありません。必ず。
- エラーはありませんが、gzipstream は解凍されません。
次のように機能します。
private void HandleTraffic()
{
while ((bytesRead = realServer.Receive(buffer, 0, BODYBUFFERSIZE, SocketFlags.None)) > 0)
{
decompressedBuffer = new byte[BODYBUFFERSIZE];
if (t == "gzip")
{
MemoryStream outputStream = new MemoryStream(), inputStream = new MemoryStream();
inputStream.Write(buffer, 0, bytesRead);
inputStream.Position = 0;
inputStream.Flush();
using (GZipStream gz = new GZipStream(inputStream, CompressionMode.Decompress))
{
gz.CopyTo(outputStream);
}
decompressedBuffer = outputStream.ToArray();
MessageBox.Show(ASCIIEncoding.ASCII.GetString(decompressedBuffer));
}
}
}
InputStream は満たされていますが、outputStream が解凍されていないか、「マジック ナンバーが正しくありません」というエラーが表示されます。
この仕事では、ソケットが必要です。