2016-10-31 3 views
1

Ich weiß, wie man überprüft, ob eine bestimmte Website/IP-Adresse erreichbar ist oder nicht. Aber ich frage mich, ob es möglich ist, die Antwortzeit oder den Ping in Millisekunden (ms) für eine bestimmte Site oder eine IP-Adresse zu kennen?Wie kann ich den Ping in ms wissen?

Danke!

+0

Mögliches Duplikat [Ping-Wert in Java] (http://stackoverflow.com/questions/12077669/ping-value-in-java) – shmosel

Antwort

1

Java verfügt nicht über ICMP. Es gibt drei Dinge, die Sie tun können:

  1. auf CLI Verlassen Sie sich und verwenden Sie die Antwort vom Ping-Befehl see here zu bekommen.
  2. Verwenden Sie Sockets zum Berechnen der Latenz zwischen dem Senden und Empfangen von Informationen see here.
  3. Verwenden Sie eine ICMP-Bibliothek.
2

Es ist sehr viel möglich :) Sie sicher, dass Sie die richtigen Berechtigungen haben (Sie setzen diese in AndroidManifest.xml)

<uses-permission android:name="android.permission.INTERNET" /> 

Mein Code, der absolut gut funktioniert.

public String ping(String url) { 
     String str = ""; 
     try { 
      java.lang.Process process = Runtime.getRuntime().exec(
       "ping -c 1 " + url); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
                  process.getInputStream())); 
      int i; 
      char[] buffer = new char[4096]; 
      StringBuffer output = new StringBuffer(); 
      String op[] = new String[64]; 
      String delay[] = new String[8]; 
      while ((i = reader.read(buffer)) > 0) 
       output.append(buffer, 0, i); 
      reader.close(); 
      op = output.toString().split("\n"); 
      delay = op[1].split("time="); 

      // body.append(output.toString()+"\n"); 
      str = delay[1]; 
      Log.i("Pinger", "Ping: " + delay[1]); 
     } catch (IOException e) { 
      // body.append("Error\n"); 
      e.printStackTrace(); 
     } 
     return str; 
    } 

Der obige Code ist so einfach wie möglich. den Code zu nennen ...

String str = ping("www.google.com"); 
//Unecessary but it makes it easier 
android.widget.Toast.makeText(this, str, android.widget.Toast.LENGTH_LONG).show(); 
Verwandte Themen