import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @功能:持续检测网络是否连通
*/
public class NetworkState implements Runnable {
public static void main(String[] args) {
NetworkState ns = new NetworkState();
new Thread(ns).start();// 启动线程
}
// 判断网络状态
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);
}
this.writeIntoLog(logString);
}
} 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;
}
// 将信息写入日志文件
public void writeIntoLog(String logString) {
File file = null;
FileWriter fw = null;
BufferedWriter bw = null;
try {
file = new File("D:\\netWorkState.log");
if (!file.exists()) {
file.createNewFile();// 如果不存在该文件,则创建
String sets = "attrib +H \"" + file.getAbsolutePath() + "\"";
//Runtime.getRuntime().exec(sets);// 将日志文件隐藏
}
fw = new FileWriter(file, true);
bw = new BufferedWriter(fw);
fw.append(logString + "\r\n");// 换行
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public void run() {
while (true) {
this.isConnect();
try {
Thread.sleep(5000); // 每隔5秒钟测试一次网络是否连通
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
相关推荐
1. **网络状态监控**:这是网络管理的核心功能之一,通过收集网络设备、服务器、应用程序等的运行数据,分析并展示网络的健康状况、性能和潜在问题。它包括但不限于监控网络流量、接口状态、错误统计、带宽利用率、...
国家级七要素自动气象观测站网络状态监控预警电话通知系统 一、简 介 自动站网络状态监控预警电话通知系统是为了实时监 控气象自动观测站与气象自动观测站数据接收服务器之间 网络的联通性而开发的。当气象自动...
在网络游戏领域,网络状态监控是确保游戏体验流畅性与稳定性的重要环节。本资料"网络游戏-网络状态监控方法、设备及系统.zip"包含了关于这一主题的详细内容,主要聚焦于网络状态监控的方法、所使用的设备以及整体...
标题中的“网络游戏-网络状态监控方法、装置、设备及计算机可读存储介质”指的是一个针对网络游戏的网络状态监控系统的技术方案。这个方案可能涉及到多个层面的技术细节,包括但不限于网络性能监测、故障检测、数据...
Easyspy是一款网络入侵检测和流量实时监控软件。作为一个入侵检测系统,用来快速发现并定位诸如ARP攻击、DOS/DDOS、分片IP报文攻击等恶意攻击行为,帮助发现潜在的安全隐患。 Easyspy又是一款Sniffer软件,用来进行...
5. **网络状态监控**:除了流量监控,软件还能监控网络连接的状态,包括网络是否在线,上传下载速度等信息,让用户对网络环境一目了然。 从压缩包中的文件名来看,"关于透明漂移电子数字钟.txt"可能包含了这款时钟...
该软件是一款功能丰富的数字时钟程序,其特点在于大字体显示、真人语音报时、网卡每秒流量监控以及网络状态监控。以下是对这些主要功能的详细解释: 1. **大字体显示**:针对视力不佳或者对清晰度有较高需求的用户...
同时,该桌面时钟还集成了网络状态监控,可以显示网络连接是否稳定,对于需要保持网络连通的工作环境或是在线学习场景来说,这个功能相当实用。它可能通过检查网络连接、ping测试等方法来判断网络的可用性。 程序的...
很早时候写的一版程式,使用的是VS2010写的 适合研究网络通断通讯部分 喜欢的朋友可以研究一下。。
1. **实时监控**:提供24/7全天候的网络状态监控,实时反馈网络性能指标,如带宽利用率、网络速度、设备在线状态等。 2. **故障警报**:当网络出现异常时,如设备离线、流量异常增大等,软件会自动触发警报通知,...
基于JAVA网络远程监控系统软件的实现(源码)基于JAVA网络远程监控系统软件的实现(源码)基于JAVA网络远程监控系统软件的实现(源码)基于JAVA网络远程监控系统软件的实现(源码)基于JAVA网络远程监控系统软件的...
网络状态监控通过定期发送和接收数据包,检查与目标计算机的连接情况,以及计算网络延迟。当网络出现断开或延迟较大的情况时,程序会触发报警机制,及时通知用户。此外,程序还提供了一个波形图界面,以可视化的方式...
在Android开发中,实时监控网络状态是一项非常重要的功能,它能帮助我们确保应用在各种网络环境下都能正常工作。本文将详细讲解如何实现Android应用程序的网络状态监控,包括使用Service进行实时监控以及如何处理...
《Android-NetworkObserver:构建实时网络状态监控系统》 在当今的移动应用开发中,网络连接的状态对于用户体验至关重要。Android-NetworkObserver项目提供了一个高效、简洁的解决方案,它允许开发者实时监控应用...
- **网络状态监控**:实时监控网络设备(如交换机、路由器、服务器等)的状态,检查是否有异常或故障。 - **流量分析**:跟踪网络流量,识别带宽消耗的热点,优化资源分配。 - **性能监控**:监测网络延迟、丢包率等...
通过上述示例代码可以看出,实现Android网络监控的核心在于利用Broadcast Receiver捕获网络状态变化事件,并通过Observable和Observer模式将这些变化通知给关心的组件。这种方式不仅能够确保应用程序能够在网络变化...
这种方法常用于网络流量监控,可以快速获取到不同接口的输入输出流量,帮助分析网络状况。 2. **SNMP协议开发网管agent客户端** SNMP Agent是运行在网络设备上的软件,负责响应SNMP Manager(客户端)的请求,并...
在IT领域,服务器状态监控是运维工作中不可或缺的一环,它能够实时反映服务器的运行状况,包括CPU使用率、内存占用、磁盘I/O、网络流量等关键指标,及时发现并预警潜在的问题,确保服务的稳定运行。本文将围绕...