Java Socket 检测远程地址可否通信

  使用java.net包中的Socket(“插座”),进行对要访问的另一端(可以是TCPIP地址)进行尝试创建链接,如果异常,则可判断为不能访问。

示例代码:

import java.io.IOException;  
import java.net.InetSocketAddress;  

import java.net.Socket;  

import lotus.domino.*;
public class myClass
{
    public static void main(String argv[])    
    {   
        //默认为正常通信
        boolean isOpen = true; 
        //百度的IP
        String host = "61.135.169.121";
        //分别模拟79至82的四个端口号
        for(int i=79;i<83;i++){
            isOpen = remoteIPIsOpen(host,i);
            System.out.println("地址:"+host+"端口:"+i+" 是否正常通信:"+isOpen);
        }
    } 

    /**
     * 判断远程地址是否正常通信
     * @ip:远程地址ip
     * @prot:远程地址端口
     */
    public boolean remoteIPIsOpen(String ip,int port){
    Socket connect = null;
    boolean isOpen = true;
    try {
            connect = new Socket();
            connect.connect(new InetSocketAddress(ip, port),100);  
            isOpen = connect.isConnected(); 
        } catch (IOException e) {
            isOpen = false;  
        }finally{  
            try {  
                connect.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }
        }
        return isOpen;
    }
}

以上是对百度IP不同的几个端口进行了尝试链接,测试结果:

地址:61.135.169.121端口:79 是否正常通信:false
地址:61.135.169.121端口:80 是否正常通信:true
地址:61.135.169.121端口:81 是否正常通信:false
地址:61.135.169.121端口:82 是否正常通信:false

原文地址:https://www.cnblogs.com/zealon/p/4419798.html