Pingクラスを使用してサーバーにpingを実行しようとしていましたが、メソッドがtrueを返す10回後に、私はfalseを取得し続けます(サーバーがダウンしています)方法は次のとおりです。C#を使用してサーバーにpingを実行する
public bool IsConnectedToInternet()
{
Ping p = new Ping();
try
{
PingReply reply = p.Send("www.uic.co.il", 1000);
if (reply.Status == IPStatus.Success)
return true;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
return false;
}
private void start_Click(object sender, EventArgs e)
{
for (; ;)
{
Console.WriteLine(IsConnectedToInternet);
}
}
なぜ私はしばらくすると偽になりますか? ありがとうございます。
あなたの例外処理は最悪I」であります長い間見られた。例外を捕まえないでください:http://blog.gauffin.org/2010/11/do-not-catch-that-exception/また、 'IsConnectedToInternet'は' CheckConnection() 'メソッドであり、プロパティではありません。 – jgauffin
これをメソッドに移動することを検討してください。プロパティにはコストがかかりません。 –
'Catch'節で' Catch(Exception ex){Console.WriteLine(Ex.Message.toString())} 'を実行して何が起こるかを見てください。 –