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