Here you can find the source of getFreeSocket(InetAddress bindAddress, int portRangeStart, int portRangeEnd)
public static int getFreeSocket(InetAddress bindAddress, int portRangeStart, int portRangeEnd)
//package com.java2s; /*/* w w w . ja v a 2s .c o m*/ JJSP - Java and Javascript Server Pages Copyright (C) 2016 Global Travel Ventures Ltd This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ import java.net.*; public class Main { public static int getFreeSocket(InetAddress bindAddress, int portRangeStart, int portRangeEnd) { for (int port = portRangeStart; port < portRangeEnd; port++) { ServerSocket ssocket = null; try { ssocket = new ServerSocket(); ssocket.setReuseAddress(false); ssocket.setSoTimeout(10); ssocket.bind(new InetSocketAddress(bindAddress, port), 10000); return port; } catch (Exception e) { } finally { try { ssocket.close(); } catch (Exception e) { } } } return -1; } }