Here you can find the source of getRandomFreePort()
public static int getRandomFreePort()
//package com.java2s; /*// w w w. j a v a2 s. c o m * Copyright 2014 Fluo authors (see AUTHORS) * * 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.ServerSocket; import java.util.Random; public class Main { public static int getRandomFreePort() { Random r = new Random(); int count = 0; while (count < 13) { int port = r.nextInt((1 << 16) - 1024) + 1024; try (ServerSocket so = new ServerSocket(port)) { so.setReuseAddress(true); return port; } catch (IOException e) { // ignore } } throw new RuntimeException("Unable to find port"); } }