如何用java,net包实现一个简单的ping
只需要很简单的知道,被ping的地址有没有在监听即可(ServerSocket.listen)
我想了个方法,建立一个Socket 去连接要ping的地址,如果虚拟机抛出一个ConnectionException
就catch住这个异常,在catch块里执行相关操作,这样可行么?程序差不多是下面这个样子。
try{
Socket s=new Socket(ping_add,ping_port);
}
catch(IOException e){
//TODO
}
这里用IOException是因为ConnectionException被包含在IOException里面了
问题点数:20、回复次数:6Top
1 楼hzhou(神龙)回复于 2006-02-01 11:15:36 得分 0
package beanexport;
import java.io.InputStream;
/**
* <p>标题: Ping</p>
* <p>描述: </p>
* <p>版权: Copyright (c) 2006</p>
* <p>公司: </p>
* @作者 hzhou(神龙) @ csdn
* @version 1.0
*/
public class Ping {
public Ping() {
}
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
try {
/*
* 以下代码使用Runtime类在一个subprocess中运行所在平台
* 的native命令。
*/
Process ps = rt.exec("ping www.csdn.net");
/*
* ping命令的output会定向到subprocess的InputStream。
* 得到此InputStream, 然后输出到你希望的地方。
*/
InputStream is = ps.getInputStream();
int t;
while ( (t = is.read()) != -1) {
System.out.print( (char) t);
}
}
catch (Exception se) {}
}
}Top
2 楼iskohl()回复于 2006-02-01 18:25:41 得分 0
楼上的是调用 ping命令了,可以不用它实现吗?捕捉异常是否可行呢?Top
3 楼sheep219(sheep219)回复于 2006-02-03 11:21:39 得分 0
同意 hzhou(神龙)Top
4 楼josy(风尘浪子)回复于 2006-02-06 10:10:15 得分 0
学习Top
5 楼whycloud(云木)回复于 2006-02-07 12:04:40 得分 0
通过IP地址获取主机名,如果过有异常,说明没有PING到,如果获取,说明PING到Top
6 楼lesstif(品位人生)回复于 2006-02-08 21:37:49 得分 0
Java 不能处理raw data, 所以Java 本身不能写ping程序,建议你到www.javasoft.com上看看,呵呵Top




