C#2008C#アクティブなインターネット接続をテストしています。 pinging google.com
私はこのコードを使用してインターネット接続をテストしています。私のアプリケーションはWebサーバーにログインする必要があります。ただし、ユーザーのインターネット接続が失敗したり、ケーブルが引き抜かれたりした場合。私はユーザーに通知する必要があります。
// Ping www.google.com to check if the user has a internet connection.
public bool PingTest()
{
Ping ping = new Ping();
PingReply pingStatus = ping.Send(IPAddress.Parse("208.69.34.231"));
if (pingStatus.Status == IPStatus.Success)
{
return true;
}
else
{
return false;
}
}
私がインターネット接続をテストできる唯一の方法は、www.google.comにpingすることです。だから、私は500ミリ秒のために設定したサーバタイマーを使用しており、経過イベントではこのping関数を呼び出します。 pingがfalseを返す場合その後、私のアプリは適切な行動を取るでしょう。
あなたはインターネット接続をテストする方法としてgoogleを使用することは良いことだと思いますか? Googleが失敗すると、私のアプリは機能しませんでした。ポーリングの1/2秒は多すぎるか少なすぎますか?それが良いかどうか私の考え全体について疑問に思っているだけですか?
多くのおかげで、
他のものとは別に、そのようなif文を使用しないでください。コードの最後の8行を "return pingStatus.Status == IPStatus.Success;"に変更します。 –
私は残念なことにあなたのために良い答えがありませんが、0.5秒ごとにサイトにpingをしたくない場合、ブロックされてしまうかもしれません。 –
任意のホストを選択する場合は、一連のホストを試すことをお勧めします。 www.google.com、www.live.com、www.yahoo.comなど。すべてが失敗した場合にのみユーザーに通知します。ルーターがユーザーとGoogleの間に落ちても、インターネットに接続されている場合、接続が切断されていると間違って通知することは望ましくありません。 – esac