美文网首页
网络监测

网络监测

作者: 我叫mtt | 来源:发表于2022-03-25 13:53 被阅读0次

最近做的项目要网络监测,看能不能ping通下位机,可让我一顿好找。因为我用模拟器测试的,发现电脑用cmd可以ping通,但是用软件就死活不行,下位机一直说必须用ping命令。下面直接上代码:

public class Ping extends AsyncTask<String, Boolean, Boolean> {
    @Override
    protected Boolean doInBackground(String... strings) {
        try {
            Process p = Runtime.getRuntime().exec("ping -c 1 -w 3 " + strings[0]);
            InputStream input = p.getInputStream();
            InputStreamReader isr = new InputStreamReader(input);
            BufferedReader br = new BufferedReader(isr);
            String line;
            StringBuilder builder = new StringBuilder();
            while ((line = br.readLine()) != null) {
                builder.append(line);
            }
            br.close();
            isr.close();
            input.close();
            br.close();
            Logger.i("返回的数据:"+builder+"  对比:"+builder.toString().contains("ttl"));
            /*如果Ip地址Ping成功后数据里面会有ttl这个数据,所以对比这个字符串即可*/
            return builder.toString().contains("ttl");
        } catch (MalformedURLException e) {
            Logger.e(e.toString());
            return false;
        } catch (IOException e) {
            Logger.e(e.toString());
            return false;
        }
    }
    @Override
    protected void onPostExecute(Boolean isPing) {
        Logger.v("Ping的结果:" + isPing);
        if (isPing) {
            BaseActivity.number = 0;
        } else {
            Logger.d("失败" + BaseActivity.number);
            BaseActivity.number++;
            if (BaseActivity.number > 3) {
                BaseActivity.in(BaseActivity.number);
            }
        }
    }
}

使用方法

  new Thread(new Runnable() {
            @Override
            public void run() {
                //需要在子线程中处理的逻辑
                while (true) {
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    new Ping().execute("192.168.88.82");

                }
            }
        }).start();

相关文章

  • AFNetworking3.0网络状态监测<二>

    SystemConfiguration网络监测 网络状态监测使用SystemConfiguration这个API ...

  • IOS开发笔记-监测网络状态

    两种方法监测网络状态: AFNetworking中AFNetworkReachabilityManager监测网络...

  • 网络监测

    #import "Reachability.h" { [super viewDidLoad]; UIButton ...

  • 网络监测

    要获取当前网络状态(Wi-Fi、4G、3G) 每一项是什么意思不太清楚,但是有时候要用区分2G、3G、4G和wifi

  • 网络监测

    最近做的项目要网络监测,看能不能ping通下位机,可让我一顿好找。因为我用模拟器测试的,发现电脑用cmd可以pin...

  • iOS网络监测提醒(AFNet)

    网络监测 一首先导入 AFNetworkReachabilityManager.h 网络监测 二https://g...

  • 判断设备是否真正的连接互联网

    在iOS中监测网络状态有好几种方式,详情点击这里。但是在一般的网络监测都只是能够监测本地的网络状态,而真实的网络可...

  • linux网络相关命令

    linux网络相关命令分为:监测,传输,远端登录 命令包括: ping - 监测网络连通性 traceroute ...

  • iOS 网络监测

    项目中经常会遇到需要获取当前的网络状态,自己就简单的封装了一下。 基于AFNetworking的网络监测 1.im...

  • APP网络监测

    使用AFNetWorking 3.0监控网络 如果要检测网络状态的变化,必须用检测管理器的单例 startMoni...

网友评论

      本文标题:网络监测

      本文链接:https://www.haomeiwen.com/subject/utxdjrtx.html