2
我想測試服務器是否活着給定IPEndpoint
。我嘗試了以下方法,但它有時會返回錯誤的結果。使用c測試與服務器的連接#
public bool IsAlive(IPEndPoint ipEndPoint)
{
if (ipEndPoint == null) return false;
var tcpClient = new TcpClient();
var bConnect = tcpClient.BeginConnect(ipEndPoint.Address, ipEndPoint.Port, null, null);
var isAlive = bConnect.AsyncWaitHandle.WaitOne(TimeSpan.FromMilliseconds(1000));
return isAlive;
}
這種方法有什麼問題?
請你可以擴展你的意思是「它有時會返回錯誤的結果」? – ChrisF
當然,我正在用下面的代碼測試這個方法。 (true) { Console.WriteLine(IsAlive(new IPEndPoint(IPAddress.Parse(「127.0.0.1」),1234))。ToString()); Console.ReadKey(); } ' – tchelidze
它有時打印真實,有時是錯誤的。 – tchelidze