java编程判断主机和端口的连通性

import java.net.InetAddress;

import org.apache.commons.net.telnet.TelnetClient;
import org.xvolks.jnative.exceptions.NativeException;

/**
 * 在Java的一些应用中,需要编写代码判断目标服务器的IP或者端口是否处于连通状态(这里的连通之IP能够ping通;ip和端口能够用telnet通)。
 * 本示例代码演示下面的内容:
 * 1、利用commons-net第三方jar,测试指定IP和端口能够访问;
 * 2、利用jdk1.5+的特性,测试指定IP能否ping通
 * @author pengsy
 */
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws NativeException,IllegalAccessException{
		//示例一:利用commons-net第三方jar,测试ip和端口的连通性
		//说明:
		//1、TelnetClient的connect方法并没有直接返回一个逻辑值,说明当前ip和port能够连接;
		//2、测试连通性,注意给定超时时间
		//3、能够连接,connect不会抛出异常信息;不能连接,connect方法会抛出异常
		boolean isConnect = false;
		try {
			TelnetClient client = new TelnetClient();
			
			client.setDefaultTimeout(3000);
			
			client.connect("127.0.0.1", 8080);
			
			isConnect = true;
		} catch (Exception e) {
			e.printStackTrace();
		}

		System.out.println("isConnect:"+isConnect);
		
		//示例二:JDK1.5以上测试IP是否能够ping通
		//说明:
		//1、isReachable方法中给定的时间,为超时时间
		//2、jdk1.5以下(不包括1.5)不支持方法isReachable
		try
        {
            InetAddress address = InetAddress.getByName("127.0.0.1");

            boolean reachable = address.isReachable(5000);

            System.out.println("Is host reachable? " + reachable);
        } catch (Exception e)
        {
            e.printStackTrace();
        }
	}

}

你可能感兴趣的:(java,IP,ping,port,commons-net)