欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Java判斷網(wǎng)絡(luò)是否正常代碼實(shí)例

 更新時(shí)間:2020年03月25日 11:37:37   作者:摘星族  
這篇文章主要介紹了基于Java判斷網(wǎng)絡(luò)是否正常代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

判斷網(wǎng)絡(luò)是否正常使用

代碼如下

/**
   * 判斷網(wǎng)絡(luò)是否正常
   * @return
   */
  public static boolean isConnect(String ipPath){
    //定義其返回的狀態(tài),默認(rèn)為false,網(wǎng)絡(luò)不正常
    boolean connect = false;
    /**
     * 用Runtime.getRuntime().exec()來調(diào)用系統(tǒng)外部的某個(gè)程序,
     * 他會(huì)生成一個(gè)新的進(jìn)程去運(yùn)行調(diào)用的程序。
     * 此方法返回一個(gè)java.lang.Process對(duì)象,
     * 該對(duì)象可以得到之前開啟的進(jìn)程的運(yùn)行結(jié)果,
     * 還可以操作進(jìn)程的輸入輸出流。
     */

    Runtime runtime = Runtime.getRuntime();
    Process process;
    try {
      process = runtime.exec("ping " + ipPath);
      InputStream is = process.getInputStream();
      InputStreamReader isr = new InputStreamReader(is,"GBK");
      BufferedReader br = new BufferedReader(isr);
      String line = null;
      StringBuffer sb = new StringBuffer();
      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      System.out.println("返回值為:"+sb);
      is.close();
      isr.close();
      br.close();

      if (null != sb && !sb.toString().equals("")) {
        String logString = "";
        if (sb.toString().indexOf("TTL") > 0) {
          // 網(wǎng)絡(luò)暢通
          connect = true;
        } else {
          // 網(wǎng)絡(luò)不暢通
          connect = false;
        }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
    return connect;
  }

TTL:生存時(shí)間

指定數(shù)據(jù)報(bào)被路由器丟棄之前允許通過的網(wǎng)段數(shù)量。

TTL 是由發(fā)送主機(jī)設(shè)置的,以防止數(shù)據(jù)包不斷在 IP 互聯(lián)網(wǎng)絡(luò)上永不終止地循環(huán)。轉(zhuǎn)發(fā) IP 數(shù)據(jù)包時(shí),要求路由器至少將 TTL 減小 1。

使用PING時(shí)涉及到的 ICMP 報(bào)文類型

一個(gè)為ICMP請(qǐng)求回顯(ICMP Echo Request)

一個(gè)為ICMP回顯應(yīng)答(ICMP Echo Reply)

TTL 字段值可以幫助我們識(shí)別操作系統(tǒng)類型

測(cè)試

 public static void main(String[] args) {
    System.out.println(HttpUtil.isConnect("220.181.111.188"));
  }

控制臺(tái)顯示

返回值為:正在 Ping 220.181.111.188
具有 32 字節(jié)的數(shù)據(jù):
來自 220.181.111.188 的回復(fù): 字節(jié)=32 時(shí)間=23ms TTL=53
來自 220.181.111.188 的回復(fù): 字節(jié)=32 時(shí)間=23ms TTL=53
來自 220.181.111.188 的回復(fù): 字節(jié)=32 時(shí)間=24ms TTL=53
來自 220.181.111.188 的回復(fù): 字節(jié)=32 時(shí)間=23ms
TTL=53220.181.111.188 的 Ping 統(tǒng)計(jì)信息:
數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計(jì)時(shí)間(以毫秒為單位):
最短 = 23ms,最長 = 24ms,平均 = 23ms

true

Process finished with exit code 0

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring的@Bean和@Autowired組合使用詳解

    Spring的@Bean和@Autowired組合使用詳解

    這篇文章主要介紹了Spring的@Bean和@Autowired組合使用詳解,Spring的@Bean注解用于告訴方法,產(chǎn)生一個(gè)Bean對(duì)象,然后這個(gè)Bean對(duì)象交給Spring管理,產(chǎn)生這個(gè)Bean對(duì)象的方法Spring只會(huì)調(diào)用一次隨后會(huì)將這個(gè)Bean對(duì)象放在自己的IOC容器,需要的朋友可以參考下
    2024-01-01
  • Mybatis-plus批量插入的2種方式總結(jié)

    Mybatis-plus批量插入的2種方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Mybatis-plus批量插入的2種方式,Mybatis-Plus提供了多種方式進(jìn)行批量插入優(yōu)化,文中通過代碼示例將實(shí)現(xiàn)的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • 如何修改覆蓋spring boot默認(rèn)日志策略logback詳解

    如何修改覆蓋spring boot默認(rèn)日志策略logback詳解

    這篇文章主要給大家介紹了關(guān)于如何修改覆蓋spring boot默認(rèn)日志策略logback的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Java方法重載的使用實(shí)戰(zhàn)案例

    Java方法重載的使用實(shí)戰(zhàn)案例

    這篇文章主要介紹了Java方法重載的使用,結(jié)合具體實(shí)例形式分析了java方法重載的基本使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法

    java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法

    這篇文章主要介紹了java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法,涉及Java元素遍歷與數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 在Java的Struts中判斷是否調(diào)用AJAX及用攔截器對(duì)其優(yōu)化

    在Java的Struts中判斷是否調(diào)用AJAX及用攔截器對(duì)其優(yōu)化

    這篇文章主要介紹了在Java的Struts中判斷是否調(diào)用AJAX及用攔截器對(duì)其優(yōu)化的方法,Struts框架是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2016-01-01
  • Java Redis Redisson配置教程詳解

    Java Redis Redisson配置教程詳解

    這篇文章主要介紹了Java Redis Redisson配置教程,包括Session共享配置及其他Redisson的Config配置方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java使用Statement接口執(zhí)行SQL語句操作實(shí)例分析

    Java使用Statement接口執(zhí)行SQL語句操作實(shí)例分析

    這篇文章主要介紹了Java使用Statement接口執(zhí)行SQL語句操作,結(jié)合實(shí)例形式詳細(xì)分析了Java使用Statement接口針對(duì)mysql數(shù)據(jù)庫進(jìn)行連接與執(zhí)行SQL語句增刪改查等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • springboot啟動(dòng)時(shí)候報(bào)錯(cuò)mongodb問題

    springboot啟動(dòng)時(shí)候報(bào)錯(cuò)mongodb問題

    這篇文章主要介紹了springboot啟動(dòng)時(shí)候報(bào)錯(cuò)mongodb問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MyBatis?核心組件Configuration實(shí)例詳解

    MyBatis?核心組件Configuration實(shí)例詳解

    Configuration用于描述 MyBatis 的主配置信息,其他組件需要獲取配置信息時(shí),直接通過 Configuration 對(duì)象獲取,這篇文章主要介紹了MyBatis核心組件Configuration,需要的朋友可以參考下
    2023-08-08

最新評(píng)論