私はSystem.Net.NetworkInformation.Pingクラスを使用して特定のIPをpingしています。私はXamarinとVisual Studio 2015を使用してAndroidフォームアプリケーションを開発しています。私が使用しているコードはここにあります。Xamarin androidフォームアプリケーションでping timeoutが機能しない
int timeout = 100;
Ping ping= new Ping();
PingReply reply = ping.Send("209.197.25.1", timeout);
if (reply != null && reply.Status == IPStatus.Success)
return reply.RoundtripTime;
if (reply != null && reply.Status == IPStatus.TimedOut)
return -1;
一つは、私の無線LANが接続されている場合、私はタイムアウトしないアウト飽きないということに関係なく、私は(1限り低く)タイムアウト値を与え、そしてreply.RoundtripTimeが(タイムアウトよりも大きいか小さいです私の場所からこのサーバーのために約300)。 私のWiFiがオフの場合、指定した時間に応じてタイムアウトになります。
私はC#コンソールアプリケーションでも同じコードを実行しようとしましたが、そこでは問題なく動作します。私はまた別のサーバーを試して、結果は同じです。誰かが私が間違っていることを教えてもらえますか? 一部の人々は、このコードを使用して目的地が利用可能かどうかを確認していると考えていましたが、そうではありません.PC間の往復時間に興味があります。
このようなpingを実行することは絶対に必要ですか?特定のアドレスに到達可能かどうかを伝えるプラグインもあります。それをチェックしてください(ここではhttps://github.com/jamesmontemagno/ConnectivityPlugin) –
可能であれば、pingの代わりにウェブリクエストを試してみてください – giammin
ICMPがすべての場合で大きく機能しない可能性があります(転送が無効になる可能性があります)。可用性をテストするには、他の方法を試してください。 –