我遇到了問題System.Net.Sockets.TcpClient
。爲什麼TcpClient與構造函數中的參數連接速度較慢?
一個簡單的測試應用程序只是打開一個連接,發送一些數據,並關閉。另一端有一臺簡單的服務器,其性能非常好。
的代碼看起來是這樣的:
var client = new TcpClient("localhost", 1234);
using (var stream = client.GetStream())
using (var writer = new StreamWriter(stream))
{
writer.Write("foo");
writer.flush();
}
client.Close();
它工作得很好,但我注意到,單元測試正在採取> 1000ms的運行。當我把它放在一個稱爲10次的循環中時,它大於10,000毫秒。
後與客戶端和服務器上的時序調試的時間,我發現它是緩慢的。
此修復程序是代碼從:
var client = new TcpClient("localhost", 1234);
這樣:
var client = new TcpClient();
client.Connect("localhost", 1234);
這使所有的差異。一次傳球大約需要10ms,而10次傳球則少於100ms。
WHY ???
在這篇文章中的最後一句話是我對.NET的大部分感覺 –
我測試了它,沒有看到任何區別。你可以發佈一個簡單的自包含代碼(客戶端+服務器)來顯示問題嗎? – I4V