content: package io.jafka;
  
  import io.jafka.utils.Closer;
  
  import java.io.IOException;
  import java.net.ServerSocket;
  
  /**
   * @author adyliu (imxylz@gmail.com)
   * @since  2013-04-25
   */
  public class PortUtils {
  
      /**
       * check available port on the machine<br/>
       * This will check the next port if the port is already used.
       * @param port the checking port
       * @return a available port
       */
      public static int checkAvailablePort(int port) {
          while (port < 65500) {
              ServerSocket serverSocket = null;
              try {
                  serverSocket = new ServerSocket(port);
                  return port;
              } catch (IOException e) {
                  //ignore error
              } finally {
                  Closer.closeQuietly(serverSocket);
              }
              port++;
          }
          throw new RuntimeException("no available port");
      }
  
      public static void main(String[] args) {
          int port = checkAvailablePort(80);
          System.out.println("The available port is " + port);
      }
  }
  