我做了一个简单的代理服务器。工作正常,但gzip解压缩不是这样的:
它的工作如下:
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没有被解压缩,或者给出了错误“神奇的数字不正确”。
在这项工作中,需要套接字。
发布于 2012-10-22 09:07:52
您不需要以任何方式处理代理服务器中的数据,不管是解压缩还是泄气。复制字节。您甚至需要查看的唯一数据是来自客户端的第一行命令。
发布于 2013-02-27 17:32:17
对我来说,解决这个问题的办法是关掉Fiddler。
https://stackoverflow.com/questions/13004753
复制相似问题