java - 如何知道 ms 中的 ping

标签 java android

我知道如何检查某个站点/IP 地址是否可以访问。但我想知道是否有可能知道特定站点或 IP 地址的响应时间或以毫秒 (ms) 为单位的 ping?

谢谢!

最佳答案

很有可能:) 只要确保你有正确的权限(你把它放在你的 AndroidManifest.xml 中)

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

我的代码运行良好。

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;
    }

上面的代码非常简单。 调用代码...

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

关于java - 如何知道 ms 中的 ping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336438/

相关文章:

java - 数字和任意长度的正则表达式

Android Sync Adapter - 手动同步

android - 列表项从 ListView 中删除,但不从数据库中删除

java - Hibernate 映射错误 "A Foreign key refering has the wrong number of column. should be 2"

java - 如何抓取给定标签内的字符串?

java - 有没有办法下载所有 Java EE 接口(interface)?

android - 调整图层列表项中的可绘制大小

java.io.FileNotFoundException : the system cannot find the file specified

java.lang.ClassCastException : android. app.Application - 类型转换

android - 计算机崩溃后 Eclipse 将不再调试