我目前正在编写一个简单的代理服务器,就像我的浏览器(Firefox 或 chrome)和 Web 服务器之间的接口,我将 Firefox 设置为向特定端口(7777)发送请求,我监听这个端口以获取请求并发送到互联网得到回应。
对于使用异步套接字向 Web 服务器发送和接收我的请求,我在向 Firefox 发送响应时遇到问题,因为 Web 服务器以多部分(8Kb)获得一个请求的响应,我立即将响应的每一部分发送到浏览器。现在,当我发送包含标头信息的请求的第一部分时,我没有问题,但是当我想发送 GZip 请求的其余部分时,我的浏览器会引发此异常
FireFox:内容编码错误 您尝试查看的页面无法显示,因为它使用了无效或不受支持的压缩形式。
Chrome:错误 330(net::ERR_CONTENT_DECODING_FAILED):未知错误。
但是当我将 sleep(1000) 放入 sendcallback 时,它可以正常工作
private void SendCallback(IAsyncResult ar)
{
try
{
SendStateObject Result = (SendStateObject)ar.AsyncState;
int ByteSend = Result.WorkSocket.EndSend(ar);
System.Threading.Thread.Sleep(1000);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.StackTrace);
}
}
什么是问题?非常感谢