- 浏览: 207998 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
brenda:
...
技术选型(转) -
JavaScriptOMG:
写的真好,不知道如果是java.sql.date的话,怎么写呢 ...
Java得到下一天明天,明天时间 -
少女杀手:
和他的一摸一样,一个字都不差
http://anysky131 ...
弹出窗口代码大全 -
shipping:
字体好小啊,都没兴趣看下去了
测试网站性能的30款免费在线工具 -
ddd:
其实一切人活着的意义就在于他死前的心情是什么。
活着是多么美好
要用java检测网络资源是否可用,我们可以采用以下两种方法:
一种方法是调用ping命令,
如:
Process process= Runtime.getRuntime().exec("ping 192.168.0.5");
InputStreamReader return = new InputStreamReader(process.getInputStream());
LineNumberReader returnData = new LineNumberReader (return);
String line="";
while((line=returnData.readLine())!=null){
System.out.println(line);
}
通用对返回数据进行分析,来探测网络资源的可用性;
这种方法有一个缺点:就是许多网络资源是不允许被ping的,从而针对这类资源无法探测。
(2008-07-28记)
Dos中的ping 命令能很方便的检测网络是否为连通状态.但是在java中,一直没有找到好的方法检来测网络是否为连通状态.无奈之余,想出了如下方法:
package com.roadway.edserver.util;
import java.awt.Toolkit;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/** *//**
* @Description:本类开启一个线程检测网络是否连通
* @Author : 惠万鹏
* @Time :2008-1-10
*/
public class NetworkManagement implements Runnable {
private int htmlCodeSize;
private int sleepMillisecond;
private int sleepMillisecondWhenNetWorkUnLinked;
private boolean isSpontaneousNotice;
private static boolean networkIsLinked;
private Thread thread = new Thread(this);
private Toolkit toolkit;
private String[] urls;
public NetworkManagement() {
this.urls = new String[]{"http://www.baidu.com", "http://www.google.cn"};
this.htmlCodeSize = 50;
this.sleepMillisecond = 5000;
this.sleepMillisecondWhenNetWorkUnLinked = 10000;
this.toolkit = Toolkit.getDefaultToolkit();
thread.start();
}
public void setURLs(String[] urls) {
if (urls != null && urls.length > 0) {
this.urls = urls;
}
}
public void setHtmlCodeSize(int htmlCodeSize) {
if (htmlCodeSize > 0) {
this.htmlCodeSize = htmlCodeSize;
}
}
public void isSpontaneousNotice(boolean isSpontaneousNotice) {
this.isSpontaneousNotice = isSpontaneousNotice;
}
public void setSleepMillisecont(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecond = sleepMillisecont;
}
}
public void setSleepMillisecondWhenNetWorkUnLinked(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecondWhenNetWorkUnLinked = sleepMillisecont;
}
}
public static boolean IsNetWordLinking() {
return NetworkManagement.networkIsLinked;
}
public void run() {
while (true) {
try {
this.isNetWorkLinked();
if (!NetworkManagement.networkIsLinked) {
this.isPrintMessage(this.isSpontaneousNotice);
Thread.sleep(this.sleepMillisecondWhenNetWorkUnLinked);
}
System.out.println(NetworkManagement.IsNetWordLinking());
Thread.sleep(this.sleepMillisecond);
} catch (Exception e) {
}
}
}
private boolean canGetHtmlCode(String httpUrl) {
String htmlCode = "";
try {
InputStream in;
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.connect();
in = connection.getInputStream();
byte[] buffer = new byte[this.htmlCodeSize];
in.read(buffer);
htmlCode = new String(buffer);
} catch (Exception e) {
}
if (htmlCode == null || htmlCode.equals("")) {
return false;
}
return true;
}
private void isNetWorkLinked() {
boolean tempIsNetWorkLinked = false;
for (int urlsCount = 0; urlsCount < this.urls.length; urlsCount++) {
if (this.canGetHtmlCode(this.urls[urlsCount])) {
tempIsNetWorkLinked = true;
break;
}
}
NetworkManagement.networkIsLinked = tempIsNetWorkLinked;
}
private void isPrintMessage(boolean isPrint) {
if (isPrint) {
toolkit.beep();
StringBuffer message = new StringBuffer();
message.append("------------->");
message.append("网络中断, ");
message.append(this.sleepMillisecondWhenNetWorkUnLinked);
message.append(" 毫秒后再次检测!<-------------");
System.out.println(message.toString());
}
}
public static void main(String[] args) {
NetworkManagement n = new NetworkManagement();
n.isSpontaneousNotice(true);
}
}
转自:http://hwpok.iteye.com/blog/615992
一种方法是调用ping命令,
如:
Process process= Runtime.getRuntime().exec("ping 192.168.0.5");
InputStreamReader return = new InputStreamReader(process.getInputStream());
LineNumberReader returnData = new LineNumberReader (return);
String line="";
while((line=returnData.readLine())!=null){
System.out.println(line);
}
通用对返回数据进行分析,来探测网络资源的可用性;
这种方法有一个缺点:就是许多网络资源是不允许被ping的,从而针对这类资源无法探测。
(2008-07-28记)
Dos中的ping 命令能很方便的检测网络是否为连通状态.但是在java中,一直没有找到好的方法检来测网络是否为连通状态.无奈之余,想出了如下方法:
package com.roadway.edserver.util;
import java.awt.Toolkit;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/** *//**
* @Description:本类开启一个线程检测网络是否连通
* @Author : 惠万鹏
* @Time :2008-1-10
*/
public class NetworkManagement implements Runnable {
private int htmlCodeSize;
private int sleepMillisecond;
private int sleepMillisecondWhenNetWorkUnLinked;
private boolean isSpontaneousNotice;
private static boolean networkIsLinked;
private Thread thread = new Thread(this);
private Toolkit toolkit;
private String[] urls;
public NetworkManagement() {
this.urls = new String[]{"http://www.baidu.com", "http://www.google.cn"};
this.htmlCodeSize = 50;
this.sleepMillisecond = 5000;
this.sleepMillisecondWhenNetWorkUnLinked = 10000;
this.toolkit = Toolkit.getDefaultToolkit();
thread.start();
}
public void setURLs(String[] urls) {
if (urls != null && urls.length > 0) {
this.urls = urls;
}
}
public void setHtmlCodeSize(int htmlCodeSize) {
if (htmlCodeSize > 0) {
this.htmlCodeSize = htmlCodeSize;
}
}
public void isSpontaneousNotice(boolean isSpontaneousNotice) {
this.isSpontaneousNotice = isSpontaneousNotice;
}
public void setSleepMillisecont(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecond = sleepMillisecont;
}
}
public void setSleepMillisecondWhenNetWorkUnLinked(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecondWhenNetWorkUnLinked = sleepMillisecont;
}
}
public static boolean IsNetWordLinking() {
return NetworkManagement.networkIsLinked;
}
public void run() {
while (true) {
try {
this.isNetWorkLinked();
if (!NetworkManagement.networkIsLinked) {
this.isPrintMessage(this.isSpontaneousNotice);
Thread.sleep(this.sleepMillisecondWhenNetWorkUnLinked);
}
System.out.println(NetworkManagement.IsNetWordLinking());
Thread.sleep(this.sleepMillisecond);
} catch (Exception e) {
}
}
}
private boolean canGetHtmlCode(String httpUrl) {
String htmlCode = "";
try {
InputStream in;
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0");
connection.connect();
in = connection.getInputStream();
byte[] buffer = new byte[this.htmlCodeSize];
in.read(buffer);
htmlCode = new String(buffer);
} catch (Exception e) {
}
if (htmlCode == null || htmlCode.equals("")) {
return false;
}
return true;
}
private void isNetWorkLinked() {
boolean tempIsNetWorkLinked = false;
for (int urlsCount = 0; urlsCount < this.urls.length; urlsCount++) {
if (this.canGetHtmlCode(this.urls[urlsCount])) {
tempIsNetWorkLinked = true;
break;
}
}
NetworkManagement.networkIsLinked = tempIsNetWorkLinked;
}
private void isPrintMessage(boolean isPrint) {
if (isPrint) {
toolkit.beep();
StringBuffer message = new StringBuffer();
message.append("------------->");
message.append("网络中断, ");
message.append(this.sleepMillisecondWhenNetWorkUnLinked);
message.append(" 毫秒后再次检测!<-------------");
System.out.println(message.toString());
}
}
public static void main(String[] args) {
NetworkManagement n = new NetworkManagement();
n.isSpontaneousNotice(true);
}
}
转自:http://hwpok.iteye.com/blog/615992
发表评论
-
技术选型(转)
2011-05-17 15:05 11692.1. 基础架构 ... -
分布式Java 应用(转)
2011-05-17 14:43 1372网络通信:协议TCP/IP,UDP/Ip,Multicas ... -
跨域访问session(转)
2011-04-22 16:14 2672大一些的网站,通常都 ... -
(转)分享一下,我常去的中文技术网站
2011-04-18 13:31 874先说一下大多数人都知 ... -
(转) request.getPathInfo() 方法的作用
2011-04-14 11:58 942request.getPathInfo(); 这个方法返回请 ... -
找到一篇性能测试的好文,简单实用,收藏之。
2011-04-10 21:59 846Java程序性能测试 1 概述 在 ... -
需要牢记的java编程规则(收藏)
2011-04-10 20:52 753(1) 类名首字母应该 ... -
一个计算机专业学生几年的编程经验汇总之二(收藏)
2011-04-10 19:48 917############################### ... -
一个计算机专业学生几年的编程经验汇总之一(收藏)
2011-04-10 18:05 897来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自 ... -
(转)各种架构图汇总
2011-04-06 22:27 1439转载请保留出处,刘晓涛汇总!!! http://bl ... -
(转)java并发编程实践笔记
2011-04-05 22:23 8201, 保证线程安全的三种方法 : a, 不要跨线程访问共享变量 ... -
(转)构建可伸缩,高性能的互联网应用
2011-04-05 22:22 788间过得很快,来新公司已经两个月了,在这两个月的时间里,自己也感 ... -
(转)百万级访问量网站的技术准备工作
2011-04-05 22:20 924当今从纯网站技术上来说,因为开源模式的发展,现在建一个小网站已 ... -
测试数据库连接状态
2011-03-25 08:45 1423while (true) { long star ... -
(转)什么是Java里的OO思想?
2011-03-24 14:12 920OO就是面向对象 面向对象(Object Oriented,O ... -
中文乱码问题的解决方法
2011-01-21 17:33 1196tomcat下中文的彻底解决[转] http://blo ... -
nginx 映射80端口
2009-08-04 09:13 3914配置一个resin, 为不用输入端 ... -
调整 Java 虚拟机
2009-07-09 23:43 1086尽管 JVM 调整操作随 JVM 提供程序的不同而有所变化,但 ... -
测试网站性能的30款免费在线工具
2009-06-28 02:12 2051你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你 ... -
Memcached-----memcached实现内存缓存
2009-06-27 15:38 2725Memcached是danga.com(运营LiveJourn ...
相关推荐
在日常网络管理和软件开发中,经常需要检查网络连通性。`ping`命令作为一种简单而有效的工具被广泛应用于这一领域。本文将介绍几种使用Java来实现`ping`功能的方法。 #### 方法一:纯Java实现ICMP的ping命令 在...
这个"javaping.rar"压缩包包含了一个Java实现的ping功能,使得开发者能够在Java应用程序中集成网络检测的能力。下面将详细探讨Java如何实现ping操作以及其背后的原理。 首先,我们要理解原始的ping命令是基于ICMP...
- **Socket方式**:另一种方法是通过创建Socket并尝试连接到目标IP,虽然这不是真正的ICMP Ping,但能检测端口是否开放,从而间接判断网络连通性。 4. **代码示例**: - 使用JICMP库,你可以创建一个Ping类,通过...
在Android平台上进行实时网络质量检测是一项重要的任务,它有助于开发者评估应用性能,优化网络请求,以及为用户提供流畅的网络体验。通常,我们可以利用系统内置的`ping`命令来实现这一功能。`ping`是一个用于测试...
【标题】"网络连接状态检测.zip"所涉及的知识点主要集中在如何在Android平台上进行网络连接状态的检测。网络连接状态的检测是移动应用开发中的重要环节,它可以帮助开发者确保应用程序在需要时能够顺利地访问网络...
反之,如果连续几次没有收到响应,工具可能会判断为网络中断。 此外,记录日志这一功能非常关键,因为它允许用户跟踪和分析过去的网络性能。日志文件会包含每次ping测试的结果,包括成功与否、往返时间(RTT)等...
在计算机网络中,PING程序是一个非常基础且重要的工具,它主要用于检测网络的连通性。通过发送ICMP(Internet Control Message Protocol,互联网控制消息协议)回送请求报文到目标主机,然后等待接收相应的回送回答...
这种软件能够定期或连续不断地向指定的网页或IP地址发送ICMP(Internet Control Message Protocol)请求,然后记录并分析响应时间,帮助用户了解目标服务器的在线状态和网络连通性。 在描述中提到的“自动ping IP...
1. **`ping`命令**:是一种用于测试两个主机之间连通性的网络工具。它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求(Echo Request),然后等待接收回显应答(Echo Reply)来工作。 2. **...
在Android系统中,ping命令用于检查设备与网络上其他主机之间的连通性,通过发送ICMP(Internet Control Message Protocol)回显请求来测试网络连接的延迟和丢包情况。 描述中提到“直接可以用”,意味着这个app...
在 Java 中,检查服务器连通是一个非常重要的问题,因为它可以帮助我们检测服务器的状态,确保服务器的可用性和稳定性。今天,我们将分享两种使用 Java 检查服务器连通的方法代码。 方法一:使用 InetAddress 的 is...
1. **网络连通性检测**:tcpping可以用来检查服务器是否在线,即便服务器禁用了ICMP回应,也能通过TCP连接来判断。 2. **延迟测量**:与ping类似,tcpping可以测量从发送连接请求到接收到响应的时间,从而估算出...
但是JAVA并没有提供类似Ping命令来测试网络连通性的方法,而是使用Java网络编程的一些类库java.net.InetAddress提供的isReachable()方法来模拟Ping命令,探测安防网络设备是否可达来判断此安防设备是否处于在线状态...
这个功能在很多场景下都非常关键,例如检测网络延迟、检查网络连接是否稳定或者验证服务器是否在线。下面我们将深入探讨如何在Android Studio中实现ping功能,以及相关的重要知识点。 首先,Android系统本身并不...
标题中的“百度批量PING工具”指的是一个专门用于批量检测网络连通性的实用程序,它集成了百度的域名或IP地址,帮助用户快速检查与百度服务器的连接状态。在IT行业中,PING是一个网络诊断命令,通过发送ICMP...
在Android平台上,`ping`命令通常用于测试网络连通性,检查设备能否与特定IP地址进行通信。在Android应用开发中,我们有时需要实现类似的功能,例如批量ping多个IP地址来检测网络状况或者验证服务器可用性。这个...
标题中的"jsp.zip_5RS9_JS前端ping源码_feedkxh_jsp ping_前端用jsp"揭示了这是一个关于JavaScript(JS)前端实现的网络Ping功能,利用JSP(JavaServer Pages)技术进行辅助。这个项目可能包含了前端的HTML页面...
2. **网络连接检测**:常用的方法有发送Ping请求,通过发送ICMP回显请求到目标设备并接收响应来判断网络连通性。此外,TCP三次握手也是一种有效的方式,如果能成功建立TCP连接,说明网络是可达的。 3. **事件监听**...
即时ping服务是一种网络诊断工具,它允许用户快速检查与远程...无论是作为独立的服务,还是集成到其他系统中,都为网络故障排查和性能监控提供了便利。在开发这样的服务时,要考虑到安全、性能和用户体验等多个方面。