Java--->判斷IP和端口是否可連接


  當我們通過IP和端口連接設備時,有時候為了用戶體驗,我們急需在幾秒內給到用戶回復信息,而這些就需要一些方法來判斷:

public void connect(String server, int servPort) throws IOException,UnknownHostException, SocketTimeoutException {
       
          
       InetAddress ad = InetAddress.getByName(server);
        boolean state = ad.isReachable(1000);//測試是否可以達到該地址 ,判斷ip是否可以連接 1000是超時時間
        if(state){
           System.out.println("連接成功" + ad.getHostAddress());
        } else{
           System.out.println("連接失敗");
          
           throw new IOException();
        }
        //1.創建一個Socket實例:構造函數向指定的遠程主機和端口建立一個TCP連接
       // socket = new Socket(server, servPort);
        socket = new Socket();
        socket.setReceiveBufferSize(8192);
        socket.setSoTimeout(1000);// socket.setSoTimeout(2000);
        SocketAddress address = new InetSocketAddress(server, servPort);
        try {
            socket.connect(address,1000);//1.判斷ip、端口是否可連接
        } catch (IOException e) {
            System.out.println("新建一個 socket server "+ servPort+"連接失敗");
            throw new IOException();
        } 
        System.out.println("新建一個socket");
        // System.out.println("Connected to server... sending echo string");
        //2. 通過套接字的輸入輸出流進行通信:一個Socket連接實例包括一個InputStream和一個OutputStream,它們的用法同於其他Java輸入輸出流。
        in = socket.getInputStream();
        out = socket.getOutputStream();
        isalreadyconnected=1;
        //  connect1( server,  servPort) ;
    }

通過上面兩個方法,拋出異常,中斷連接,來滿足用戶體驗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM