- 浏览: 250858 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
无它唯勤:
...
Spring Ioc AOP -
dubaopeng:
挺好的,拿去改改!
java 解析csv文件 -
灵程大哥:
先试一下,看行不行
java 判断文本文件编码 -
pxjianke:
谢谢兄弟。我现在在测试插入千万级数据。做测试。这个太有用了。
Oracle 高速批量速插入数据 解决方案
要用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);
}
}
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);
}
}
发表评论
-
一刻钟精通正则表达式(转)
2007-11-07 11:23 868想必很多人都对正则表达式都头疼。今天,我以我的 ... -
Map、ArrayList 的遍历
2007-11-08 12:50 818public static void main(String[ ... -
Hibernate 连接池
2007-11-16 16:50 718<session-factory> < ... -
Hibernate检索对象的方式
2007-11-23 11:23 601Hibernate检索对象的方式 ... -
再温java jkd 环境变量设置
2007-12-04 15:16 877JAVA_HOME: C:\Program Files ... -
JAVA之路(转)
2007-12-04 18:12 623很多网友问我学习Java有 ... -
JMail
2007-12-05 10:42 867一.创建html格式的邮件 ... -
JMail 异常: java.lang.NoClassDefFoundError: javax/activation/DataSource
2007-12-11 16:56 2782今天开发邮件系统,发送程序能在main函数中顺利运行. ... -
JAVA 常用正则表达试
2007-12-11 21:21 799"^\d+$" //非负整数(正整数 + ... -
Linux - Tomcat
2007-12-14 18:36 7511.使用ps -ax | grep tomcat可以查询出内存 ... -
有返回值 存储过程 的 调用
2007-12-18 20:03 719有返回值的存储过程的调用方法如下: public class ... -
ECLIPS 经典 快键
2007-12-21 11:42 758Ctrl+1 快速修复(最经典的快捷键,就不用多说了) ... -
eclips 恢复 误删文件
2007-12-23 13:25 773今天,把我差点气死了,一不小心误删了很多重要文件. 后来才到网 ... -
JSP 统计在线人数
2007-12-24 10:39 726package com.test;import javax. ... -
The Software Engineer
2007-12-24 13:40 589http://siyn.iteye.com/ http://w ... -
Summarization of web project
2007-12-27 09:37 636开始一个web项目前应该注意一些什么?就自己的开发 ... -
正则表达式--2
2008-01-02 16:19 620正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总 ... -
java 正则表达式 长期总结
2008-01-03 18:46 718匹配文件后缀名:Pattern.matches("^ ... -
Test
2008-01-07 16:08 755package com.ed.cnc.servletListe ... -
跟据Email 查找 SMTP 服务器
2008-01-12 20:51 817package com.roadway.edserver.u ...
相关推荐
在日常网络管理和软件开发中,经常需要检查网络连通性。`ping`命令作为一种简单而有效的工具被广泛应用于这一领域。本文将介绍几种使用Java来实现`ping`功能的方法。 #### 方法一:纯Java实现ICMP的ping命令 在...
1. **网络监控**:可用于定期检查服务器或网络设备的连通性状态。 2. **故障排查**:在网络出现故障时,可以通过批量Ping操作快速定位问题所在。 3. **自动化测试**:集成到自动化测试框架中,以确保网络服务的可用...
总之,"javaping.rar"中的Java实现提供了一种在Java程序中进行网络可达性检查的方法,虽然不直接使用ICMP,但通过模拟TCP/IP底层协议,实现了ping的功能。这有助于开发者在无需依赖外部命令行工具的情况下,进行网络...
在 Java 中,检查服务器连通是一个非常重要的问题,因为它可以帮助我们检测服务器的状态,确保服务器的可用性和稳定性。今天,我们将分享两种使用 Java 检查服务器连通的方法代码。 方法一:使用 InetAddress 的 is...
- **Socket方式**:另一种方法是通过创建Socket并尝试连接到目标IP,虽然这不是真正的ICMP Ping,但能检测端口是否开放,从而间接判断网络连通性。 4. **代码示例**: - 使用JICMP库,你可以创建一个Ping类,通过...
而在Java编程环境中实现这一功能,不仅可以帮助开发者更好地了解网络状态,还能为应用程序增加网络监控的能力。本文档将详细介绍如何利用Java中的`ProcessBuilder`类来执行ping命令,并解析其输出结果,以此来判断...
标题"PINGtest_ping_"指的是一个用于测试网络连通性的工具,特别关注于使用"ping"命令来检查IP地址的可达性。"ping"是互联网控制报文协议(ICMP)的一部分,它允许网络设备发送“回显请求”到目标IP地址,然后接收...
在计算机网络中,PING程序是一个非常基础且重要的工具,它主要用于检测网络的连通性。通过发送ICMP(Internet Control Message Protocol,互联网控制消息协议)回送请求报文到目标主机,然后等待接收相应的回送回答...
标题中的“自动ping网页软件”是指一种能够自动化执行ping命令的工具,主要用于检查网络连接的稳定性和速度。这种软件能够定期或连续不断地向指定的网页或IP地址发送ICMP(Internet Control Message Protocol)请求...
3. **NetworkInfo API**:通过`ConnectivityManager`获取网络状态信息,如网络类型、是否连接等。 4. **Traceroute**:虽然在Android中不常用,但`traceroute`可以追踪数据包在网络中的路由,提供更详细的网络路径...
`ping`是Internet控制报文协议(ICMP)的一部分,用于测试网络连接的连通性,通常通过发送ICMP回显请求到目标主机并接收回显应答来检查网络的可达性。 在Java中实现`ping`功能,我们需要理解以下几个核心知识点: ...
PING程序是网络诊断工具,用于检查网络连接是否畅通,通过发送ICMP(Internet Control Message Protocol)回显请求到目标主机并接收其回显应答来判断网络连通性。这个特别的PING程序增加了额外的功能,如声音报警、...
1. **网络连通性检测**:tcpping可以用来检查服务器是否在线,即便服务器禁用了ICMP回应,也能通过TCP连接来判断。 2. **延迟测量**:与ping类似,tcpping可以测量从发送连接请求到接收到响应的时间,从而估算出...
在Android系统中,ping命令用于检查设备与网络上其他主机之间的连通性,通过发送ICMP(Internet Control Message Protocol)回显请求来测试网络连接的延迟和丢包情况。 描述中提到“直接可以用”,意味着这个app...
3. **检查命令状态**:如果命令成功执行且网络通畅,则返回值为0;否则返回非零值。 4. **处理异常情况**: - 如果在执行命令时发生`IOException`,则表示执行过程中出现了错误,如权限不足等。 - 如果在等待命令...
【标题】"网络连接状态检测.zip"所涉及的知识点主要集中在如何在Android平台上进行网络连接状态的检测。网络连接状态的检测是移动应用开发中的重要环节,它可以帮助开发者确保应用程序在需要时能够顺利地访问网络...
这个功能在很多场景下都非常关键,例如检测网络延迟、检查网络连接是否稳定或者验证服务器是否在线。下面我们将深入探讨如何在Android Studio中实现ping功能,以及相关的重要知识点。 首先,Android系统本身并不...
标题中的“百度批量PING工具”指的是一个专门用于批量检测网络连通性的实用程序,它集成了百度的域名或IP地址,帮助用户快速检查与百度服务器的连接状态。在IT行业中,PING是一个网络诊断命令,通过发送ICMP...
在Android平台上,`ping`命令通常用于测试网络连通性,检查设备能否与特定IP地址进行通信。在Android应用开发中,我们有时需要实现类似的功能,例如批量ping多个IP地址来检测网络状况或者验证服务器可用性。这个...