只需要很简单的知道,被ping的地址有没有在监听即可(ServerSocket.listen)
我想了个方法,建立一个Socket 去连接要ping的地址,如果虚拟机抛出一个ConnectionException
就catch住这个异常,在catch块里执行相关操作,这样可行么?程序差不多是下面这个样子。try{
   Socket s=new Socket(ping_add,ping_port);
}
catch(IOException e){
//TODO
}
这里用IOException是因为ConnectionException被包含在IOException里面了

解决方案 »

  1.   

    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) {}  }
    }
      

  2.   

    楼上的是调用 ping命令了,可以不用它实现吗?捕捉异常是否可行呢?
      

  3.   

    通过IP地址获取主机名,如果过有异常,说明没有PING到,如果获取,说明PING到
      

  4.   

    Java 不能处理raw data, 所以Java 本身不能写ping程序,建议你到www.javasoft.com上看看,呵呵