C#Thread.Sleep导致firefox“连接被重置”

时间:2012-07-19 10:20:14

标签: c# firefox google-chrome sleep tcpclient

我正在编写一个吐出一些HTML的服务器,但我遇到了Chrome和Firefox的问题。以下是重要代码的片段

...
TcpListener listener = new TcpListener(IPAddress.Any, 12345);

listener.Start();

TcpClient client = listener.AcceptTcpClient();
client.ReceiveTimeout = 1000;
client.SendTimeout = 1000;

NetworkStream stream = client.GetStream();
stream.ReadTimeout = 1000;

...

StreamWriter sw = new StreamWriter(stream);
sw.Write(response);
sw.Flush();

System.Threading.Thread.Sleep(1000);

sw.Close();
stream.Close();
client.Close();

响应只是简单的HTML ....,没有任何标题或其他元数据(也许这就是问题?)。 现在发生的是:

场景1 - 有睡眠(1000);

Chrome工作正常,我显示完整的HTML并且工作正常。 Firefox工作但1秒钟后出现问题加载页面 - 连接重置

场景2 - 没有睡眠(1000);

Firefox完美运行,我显示完整的HTML并且它正常工作。 Chrome不显示任何数据或数据不完整,并且网页“冻结”,我无法标记任何内容或点击任何按钮。

有可能解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在您使用Web服务器之前,我建议您阅读这些文章

Web服务器安全指南 http://www.cmu.edu/iso/governance/guidelines/web-server.html

超文本传输​​协议 - HTTP / 1.1 http://www.ietf.org/rfc/rfc2616.txt