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

 

你可能感兴趣的:(java socket)