2012-07-19 50 views
0

我正在写一个服务器,吐出一些HTML,但我遇到了Chrome和Firefox的问题。下面是代码的事项C#Thread.Sleep导致火狐“连接被重置”

... 
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浏览器不显示数据或不完整的数据,页面“冻结”,我不能标记任何内容或点击任何按钮。

有没有可能的解决方案呢?

+0

你写你的自己的Web服务器? – 2012-07-19 10:22:19

+0

确保你还要好好照顾安全,因为年纪大的服务器会被黑客攻击 – JohnnBlade 2012-07-19 10:22:49

回答