就类似ping程序一样,当然,java不能使用raw socket,请问该如何检测到某一主机的连通性?或者是否java.net包中某个类提供了这样的功能?

解决方案 »

  1.   

    public InetAddress getServerIP()
    {  try 
    {
    myServer=InetAddress.getByName( "www.abc.com");
    } catch (UnknownHostException e) {}  return (myServer); 


    能不能用获取网站的ip去试试
      

  2.   

    JAVA当然能实现ping的功能,只是调用本地的ping方法,在win和linux下都能使用,首先使用Runtime.exec()方法调用ping方法,该方法返回一个Process对象,然后通过调用Process对象的getOutputStream()方法获取ping命令在控制台中的输出,我们可以通过OutputStreamReader类将输出流转换成字符串,然后计算字符串中Timeout的出现次数,如果大于等于4次的,则表示该IP是无法ping通的。
    在ANT中实现Telnet就是使用这样的实现思想
      

  3.   

    import java.io.*;
    import java.net.*;public class LowPortScanner
    {
    public static void main(String[] args)
    {
    String host="localhost";
    if(args.length>0)
    host=args[0];
    else
    {
    for(int i=0;i<1024;i++)
    {
    try
    {
    Socket s=new Socket(host,i);
    System.out.println("There is a server on port"+i+"of"+host);
    }
    catch(UnknownHostException e)
    {}
    catch(IOException e)
    {}


    }
    }
    }
    }
      

  4.   

    就像楼上的写的那样,用Socket(host, prot)试。。
    如果没连接上就会抛出异常。。
    反之就是成功。  :)