专栏首页软件工程师成长笔记判断监听系统网络状态

判断监听系统网络状态

package com.asset.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date
import javax.servlet.http.HttpSession;
public class NetworkState implements Runnable {
private HttpSession session;
public void setSession (HttpSession session){
    this.session = session;
}
// 判断网络状态  
public void isConnect() {  
    Runtime runtime = Runtime.getRuntime();  
    try {  
        Process process = runtime.exec("ping " + "www.baidu.com");  
        InputStream is = process.getInputStream();  
        InputStreamReader isr = new InputStreamReader(is);  
        BufferedReader br = new BufferedReader(isr);  
        String line = null;  
        StringBuffer sb = new StringBuffer();  
        while ((line = br.readLine()) != null) {  
            sb.append(line);  
            // System.out.println("返回值为:"+line);  
        }  
        is.close();  
        isr.close();  
        br.close();  
  
        if (null != sb && !sb.toString().equals("")) {  
            String logString = "";  
            if (sb.toString().indexOf("TTL") > 0) {  
                // 网络畅通
                logString = "网络正常,时间: " + this.getCurrentTime();  
                System.out.println(logString);
            } else {  
                // 网络不畅通  
                logString = "网络断开,时间: " + this.getCurrentTime();  
                System.out.println(logString);
                session.invalidate();   
                return;
            }    
        }  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
}  
  
// 获得当前时间  
public String getCurrentTime() {  
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    String time = sdf.format(new Date());  
    return time;  
}  

@Override
public void run() {  
    while (true) {  
        this.isConnect();
        try {  
            // 每隔3秒钟测试一次网络是否连通  
            Thread.sleep(3000);  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        }  
    }  
}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用MINA实现UDP通信的例子

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象...

    麦克劳林
  • CXF实现webService服务

    Web Service也叫XML Web Service,WebService是一种可以接收从Internet或者Internet上的其它系统中传递过来的请求,...

    麦克劳林
  • Maven项目Spring整合RocketMQ消费者实现

    RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会,已经于2016年11月成为 Apache 孵化项目,相信Rock...

    麦克劳林
  • java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结

    Hongten
  • RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经...

    肖哥哥
  • 20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用。

    Java后端工程师
  • 20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用。

    Java后端工程师
  • 转载 Java设计模式

    设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精...

    用户1518699
  • 在UWP应用中读取系统证书信息

    在Windows里,我们可以通过certmgr.msc查看和管理系统证书,这个工具是Windows自带的。

    Edi Wang
  • Entity Framework——建模建库

    1数据库初始化策略选择 三种初始化策略: 1)CreateDatabaseIfNotExists:默认的策略。如果数据库不存在,那么就创建数据库。但是如果数据库...

    甜橙很酸

扫码关注云+社区

领取腾讯云代金券