2012-07-19 30 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

回答