Java InetAddress Check isPortFree(int port, InetAddress addr)

Here you can find the source of isPortFree(int port, InetAddress addr)

Description

is Port Free

License

Open Source License

Parameter

Parameter Description
port a parameter
addr a parameter

Return

true if port is not being used by any TCP and UDP Socket.

Declaration

public static boolean isPortFree(int port, InetAddress addr) 

Method Source Code

//package com.java2s;
/*/*from ww w.ja v a2s  .  c om*/
 * Copyright (c) 2015, Alachisoft. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.io.IOException;

import java.net.DatagramSocket;
import java.net.InetAddress;

import java.net.ServerSocket;

public class Main {
    /**
     *
     * @param port
     * @param addr
     * @return true if port is not being used by any TCP and UDP Socket.
     */
    public static boolean isPortFree(int port, InetAddress addr) {
        return isTCPPortFree(port, addr) && isUDPPortFree(port, addr);
    }

    public static boolean isTCPPortFree(int port, InetAddress addr) {
        ServerSocket ss = null;
        try {
            ss = new ServerSocket(port);
            //ss.setReuseAddress(true);
            return true;
        } catch (IOException io) {
        } finally {
            if (ss != null) {
                try {
                    ss.close();
                } catch (IOException e) {
                }
            }
        }
        return false;

    }

    public static boolean isUDPPortFree(int port, InetAddress addr) {
        DatagramSocket ds = null;
        try {
            ds = new DatagramSocket(port, addr);
            //ds.setReuseAddress(true);
            return true;
        } catch (IOException io) {
        } finally {
            if (ds != null) {
                ds.close();
            }
        }
        return false;
    }
}

Related

  1. isLocalIpAddress(final InetAddress ipAddress)
  2. isLoopbackAddress(InetAddress address)
  3. isLoopbackIp(InetAddress addr)
  4. isMulticastAddress(InetAddress ipAddr)
  5. isOnNetwork(InetAddress host, InetAddress network, byte[] mask)
  6. isPortInUse(InetAddress address, int port, int count)
  7. isPortOpen(InetAddress address, int port)
  8. isPrivate(InetAddress addr)
  9. isPrivate(InetAddress adr)