我做了一個簡單的代理服務器。工作正常,但不是gzip解壓縮:解壓縮gzipstream從
- 幻數不正確。確定 。
- 沒有錯誤,但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的不是解壓縮或給我的錯誤「神奇的數字是不正確的」。
在這份工作中,插座是必需的。
這可能是一個愚蠢的問題,但你確定你正在接收正確的輸入數據?我遇到了問題,試圖在數據之前解壓縮包含自定義標題的數據。 – xxbbcc
謝謝xxbbcc。我讀到\ r \ n \ r \ n。這是標題,不是嗎?之後,我會繼續與身體接觸。非gzip請求完美無缺。 很多例子都是針對壓縮和解壓縮文件的。但是這是來自互聯網主持人。我真的不知道:-( –