0
我有以下代碼從time.nist.gov讀取時間:C#StreamReader的ReadToEnd的凍結
TcpClient client = new TcpClient();
var result = client.BeginConnect("129.6.15.28", 13, null, null);
var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));
if (!success || !client.Connected)
// Timeout
else{
streamReader = new StreamReader(client.GetStream());
var response = streamReader.ReadToEnd();
//code
}
的問題是,有時ReadToEnd的獲得無限期冷凍,我想是因爲它沒有達到和結束。
是否可以設置此操作的超時時間?
或者更好的選擇來讀取服務器響應?
謝謝。
使用端口13(白天協議)是一個壞主意。它沒有確定迴應的格式,所以你不知道什麼時候得到完整回覆。當服務器沒有斷開連接時沒有結束。該協議僅適用於終端,人力等待。至少使用NTP,也許你不應該自己寫。已完成。 –
港口13鬧鬼。 – usr