Example usage for java.net ServerSocket ServerSocket

List of usage examples for java.net ServerSocket ServerSocket

Introduction

In this page you can find the example usage for java.net ServerSocket ServerSocket.

Prototype

public ServerSocket(int port) throws IOException 

Source Link

Document

Creates a server socket, bound to the specified port.

Usage

From source file:com.google.dart.tools.core.DartCore.java

/**
 * Find and return an unused server socket port.
 *///from w ww  . jav a 2  s  .co m
public static int findUnusedPort() {
    try {
        ServerSocket ss = new ServerSocket(0);
        int port = ss.getLocalPort();
        ss.close();
        return port;
    } catch (IOException ioe) {
        //$FALL-THROUGH$
    }
    return -1;
}

From source file:org.apache.activemq.leveldb.test.ReplicatedLevelDBBrokerTest.java

@Before
public void findFreePort() throws Exception {
    ServerSocket socket = new ServerSocket(0);
    port = socket.getLocalPort();//from ww  w.  java  2 s .co  m
    socket.close();
}

From source file:brooklyn.util.ssh.BashCommandsIntegrationTest.java

License:asdf

private ServerSocket openServerSocket() {
    int lowerBound = 40000;
    int upperBound = 40100;
    for (int i = lowerBound; i < upperBound; i++) {
        try {/*from www .  j  ava  2s  .  c  o  m*/
            return new ServerSocket(i);
        } catch (IOException e) {
            // try next number
        }
    }
    throw new IllegalStateException("No ports available in range " + lowerBound + " to " + upperBound);
}

From source file:com.app.server.Main.java

/**
 * This is the start of the all the services in web server
 * @param args//from   ww w .  j av  a 2s .  c  o  m
 * @throws IOException 
 * @throws SAXException 
 */
public static void main(String[] args) throws IOException, SAXException {

    long startTime = System.currentTimeMillis();
    Hashtable urlClassLoaderMap = new Hashtable();
    Hashtable executorServicesMap = new Hashtable();
    Hashtable ataMap = new Hashtable<String, ATAConfig>();
    Hashtable messagingClassMap = new Hashtable();
    ConcurrentHashMap servletMapping = new ConcurrentHashMap();
    Vector deployerList = new Vector(), serviceList = new Vector();
    DigesterLoader serverdigesterLoader = DigesterLoader.newLoader(new FromXmlRulesModule() {
        protected void loadRules() {
            // TODO Auto-generated method stub
            try {
                loadXMLRules(new InputSource(new FileInputStream("./config/serverconfig-rules.xml")));
            } catch (FileNotFoundException e) {
                log.error("Error in loading the xml rules ./config/serverconfig-rules.xml", e);
                // TODO Auto-generated catch block
                //e.printStackTrace();
            }

        }
    });
    Digester serverdigester = serverdigesterLoader.newDigester();
    final ServerConfig serverconfig = (ServerConfig) serverdigester
            .parse(new InputSource(new FileInputStream("./config/serverconfig.xml")));

    //log.info(messagingconfig);
    ////log.info(serverconfig.getDeploydirectory());
    PropertyConfigurator.configure("log4j.properties");
    /*MemcachedClient cache=new MemcachedClient(
        new InetSocketAddress("localhost", 1000));*/

    // Store a value (async) for one hour
    //c.set("someKey", 36, new String("arun"));
    // Retrieve a value.        
    System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory");
    System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");
    ExecutorService executor = java.util.concurrent.Executors.newCachedThreadPool();

    MBeanServer mbs = MBeanServerFactory.createMBeanServer("singham");
    ObjectName name = null;
    try {
        mbs.registerMBean(serverconfig, new ObjectName("com.app.server:type=serverinfo"));
    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    /*try {
       name = new ObjectName("com.app.server:type=WarDeployer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    WarDeployer warDeployer=new WarDeployer(serverconfig.getDeploydirectory(),serverconfig.getFarmWarDir(),serverconfig.getClustergroup(),urlClassLoaderMap,executorServicesMap,messagingClassMap,servletMapping,messagingconfig,sessionObjects);
    warDeployer.setPriority(MIN_PRIORITY);
    try {
       mbs.registerMBean(warDeployer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    //warDeployer.start();
    executor.execute(warDeployer);*/

    final byte[] shutdownBt = new byte[50];
    /*WebServerRequestProcessor webserverRequestProcessor=new WebServer().new WebServerRequestProcessor(servletMapping,urlClassLoaderMap,serverSocketChannel,serverconfig.getDeploydirectory(),Integer.parseInt(serverconfig.getShutdownport()),1);
      webserverRequestProcessor.setPriority(MIN_PRIORITY);
    try {
       name = new ObjectName("com.app.server:type=WebServerRequestProcessor");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(webserverRequestProcessor, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //webserverRequestProcessor.start();
      executor.execute(webserverRequestProcessor);
            
            
      for(int i=0;i<10;i++){
       WebServerRequestProcessor webserverRequestProcessor1=new WebServer().new WebServerRequestProcessor(servletMapping,urlClassLoaderMap,serverSocketChannel,serverconfig.getDeploydirectory(),Integer.parseInt(serverconfig.getShutdownport()),2);
    webserverRequestProcessor1.setPriority(MIN_PRIORITY);
       try {
    name = new ObjectName("com.app.server:type=WebServerRequestProcessor"+(i+1));
       } catch (MalformedObjectNameException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
       } 
               
       try {
    mbs.registerMBean(webserverRequestProcessor1, name);
       } catch (InstanceAlreadyExistsException | MBeanRegistrationException
       | NotCompliantMBeanException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
       }
               
         executor.execute(webserverRequestProcessor1);
      }*/

    /*ExecutorServiceThread executorService=new ExecutorServiceThread(serverSocketChannelServices,executorServicesMap,Integer.parseInt(serverconfig.getShutdownport()),ataMap,urlClassLoaderMap,serverconfig.getDeploydirectory(),serverconfig.getServicesdirectory(),serverconfig.getEarservicesdirectory(),serverconfig.getNodesport());
            
    try {
       name = new ObjectName("com.app.services:type=ExecutorServiceThread");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(executorService, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //executorService.start();
    executor.execute(executorService);
            
            
    for(int i=0;i<10;i++){
       ExecutorServiceThread executorService1=new ExecutorServiceThread(serverSocketChannelServices,executorServicesMap,Integer.parseInt(serverconfig.getShutdownport()),ataMap,urlClassLoaderMap,serverconfig.getDeploydirectory(),serverconfig.getServicesdirectory(),serverconfig.getEarservicesdirectory(),serverconfig.getNodesport());
               
       try {
    name = new ObjectName("com.app.services:type=ExecutorServiceThread"+(i+1));
       } catch (MalformedObjectNameException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
       } 
               
       try {
    mbs.registerMBean(executorService1, name);
       } catch (InstanceAlreadyExistsException | MBeanRegistrationException
       | NotCompliantMBeanException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
       }
               
       executor.execute(executorService1);
    }*/

    /*WebServerHttpsRequestProcessor webserverHttpsRequestProcessor=new WebServer().new WebServerHttpsRequestProcessor(servletMapping,urlClassLoaderMap,Integer.parseInt(serverconfig.getHttpsport()),serverconfig.getDeploydirectory(),Integer.parseInt(serverconfig.getShutdownport()),serverconfig.getHttpscertificatepath(),serverconfig.getHttpscertificatepasscode(),1);
    try {
       name = new ObjectName("com.app.server:type=WebServerHttpsRequestProcessor");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(webserverHttpsRequestProcessor, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    webserverHttpsRequestProcessor.setPriority(MAX_PRIORITY);
    //webserverRequestProcessor.start();
      executor.execute(webserverHttpsRequestProcessor);*/

    /* for(int i=0;i<2;i++){
        webserverHttpsRequestProcessor=new WebServer().new WebServerHttpsRequestProcessor(urlClassLoaderMap,Integer.parseInt(serverconfig.getHttpsport())+(i+1),serverconfig.getDeploydirectory(),Integer.parseInt(serverconfig.getShutdownport()),serverconfig.getHttpscertificatepath(),serverconfig.getHttpscertificatepasscode(),1);
              
      try {
    name = new ObjectName("com.app.server:type=WebServerHttpsRequestProcessor"+(i+1));
      } catch (MalformedObjectNameException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
      } 
              
      try {
    mbs.registerMBean(webserverHttpsRequestProcessor, name);
      } catch (InstanceAlreadyExistsException | MBeanRegistrationException
       | NotCompliantMBeanException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
      }
              
      executor.execute(webserverHttpsRequestProcessor);
    }*/

    /*ATAServer ataServer=new ATAServer(serverconfig.getAtaaddress(),serverconfig.getAtaport(),ataMap);
            
    try {
       name = new ObjectName("com.app.services:type=ATAServer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(ataServer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
            
    ataServer.start();*/

    /*ATAConfigClient ataClient=new ATAConfigClient(serverconfig.getAtaaddress(),serverconfig.getAtaport(),serverconfig.getServicesport(),executorServicesMap);
            
    try {
       name = new ObjectName("com.app.services:type=ATAConfigClient");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(ataClient, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    ataClient.start();*/

    /*MessagingServer messageServer=new MessagingServer(serverconfig.getMessageport(),messagingClassMap);
            
    try {
       name = new ObjectName("com.app.messaging:type=MessagingServer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(messageServer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    //messageServer.start();
    executor.execute(messageServer);*/

    /*RandomQueueMessagePicker randomqueuemessagepicker=new RandomQueueMessagePicker(messagingClassMap);
            
    try {
       name = new ObjectName("com.app.messaging:type=RandomQueueMessagePicker");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(randomqueuemessagepicker, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //randomqueuemessagepicker.start();
    executor.execute(randomqueuemessagepicker);*/

    /*RoundRobinQueueMessagePicker roundrobinqueuemessagepicker=new RoundRobinQueueMessagePicker(messagingClassMap);
            
    try {
       name = new ObjectName("com.app.messaging:type=RoundRobinQueueMessagePicker");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(roundrobinqueuemessagepicker, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //roundrobinqueuemessagepicker.start();
    executor.execute(roundrobinqueuemessagepicker);*/

    /*TopicMessagePicker topicpicker= new TopicMessagePicker(messagingClassMap);
            
    try {
       name = new ObjectName("com.app.messaging:type=TopicMessagePicker");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(topicpicker, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    //topicpicker.start();
    executor.execute(topicpicker);*/

    try {
        name = new ObjectName(SARDeployer.OBJECT_NAME);
    } catch (Exception e) {
        log.error("Error in creating the object name " + SARDeployer.OBJECT_NAME, e);
        // TODO Auto-generated catch block
        //e1.printStackTrace();
    }
    log.info(System.getProperty("user.dir"));
    try {
        mbs.createMBean("com.app.server.SARDeployer", name);
        mbs.invoke(name, "init", new Object[] { deployerList }, new String[] { Vector.class.getName() });
        mbs.invoke(name, "init", new Object[] { serviceList, serverconfig, mbs }, new String[] {
                Vector.class.getName(), ServerConfig.class.getName(), MBeanServer.class.getName() });
        mbs.invoke(name, "start", null, null);
        mbs.invoke(name, "deploy",
                new Object[] {
                        new URL("file:///" + new File("").getAbsolutePath() + "/config/mbean-service.xml") },
                new String[] { URL.class.getName() });
        /*name=new ObjectName("com.app.server:type=deployer,service=WARDeployer");
        mbs.invoke(name, "deploy", new Object[]{new URL("file:///"+serverconfig.getDeploydirectory()+"/TestDollar2.war")}, new String[]{URL.class.getName()});
        mbs.invoke(name, "deploy", new Object[]{new URL("file:///"+serverconfig.getDeploydirectory()+"/StrutsProj.war")}, new String[]{URL.class.getName()});*/
        //mbs.registerMBean("", name);
    } catch (Exception ex) {
        log.error("Error in SAR DEPLOYER ", ex);
        // TODO Auto-generated catch block
        //e1.printStackTrace();
    }

    //scanner.deployPackages(new File[]{new File(serverconfig.getDeploydirectory()+"/AppServer.war")});

    try {
        new NodeResourceReceiver(mbs).start();
    } catch (Exception ex) {
        log.error("Node Receiver start", ex);
        //e2.printStackTrace();
    }
    long endTime = System.currentTimeMillis();
    log.info("Server started in " + ((endTime - startTime) / 1000) + " seconds");
    /*try {
       mbs.invoke(name, "startDeployer", null, null);
    } catch (InstanceNotFoundException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } catch (ReflectionException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } catch (MBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    */
    /*JarDeployer jarDeployer=new JarDeployer(registry,serverconfig.getServicesdirectory(), serverconfig.getServiceslibdirectory(),serverconfig.getCachedir(),executorServicesMap, urlClassLoaderMap);
    try {
       name = new ObjectName("com.app.server:type=JarDeployer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(jarDeployer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //jarDeployer.start();
    executor.execute(jarDeployer);*/

    /*EARDeployer earDeployer=new EARDeployer(registry,serverconfig.getEarservicesdirectory(),serverconfig.getDeploydirectory(),executorServicesMap, urlClassLoaderMap,serverconfig.getCachedir(),warDeployer);
    try {
       name = new ObjectName("com.app.server:type=EARDeployer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(earDeployer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //earDeployer.start();
    executor.execute(earDeployer);*/

    /*JVMConsole jvmConsole=new JVMConsole(Integer.parseInt(serverconfig.getJvmConsolePort()));
            
    try {
       name = new ObjectName("com.app.server:type=JVMConsole");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(jvmConsole, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
    executor.execute(jvmConsole);*/

    /*ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
     XMLDeploymentScanner xmlDeploymentScanner =new XMLDeploymentScanner(serverconfig.getDeploydirectory(),serverconfig.getServiceslibdirectory());
    exec.scheduleAtFixedRate(xmlDeploymentScanner, 0, 1000, TimeUnit.MILLISECONDS);*/

    /*EmbeddedJMS embeddedJMS=null;
    try {
       embeddedJMS=new EmbeddedJMS();
       embeddedJMS.start();
    } catch (Exception ex) {
       // TODO Auto-generated catch block
       ex.printStackTrace();
    }   
             
     EJBDeployer ejbDeployer=new EJBDeployer(serverconfig.getServicesdirectory(),registry,Integer.parseInt(serverconfig.getServicesregistryport()),embeddedJMS);
    try {
       name = new ObjectName("com.app.server:type=EJBDeployer");
    } catch (MalformedObjectNameException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    } 
            
    try {
       mbs.registerMBean(ejbDeployer, name);
    } catch (InstanceAlreadyExistsException | MBeanRegistrationException
    | NotCompliantMBeanException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
    }
            
    //jarDeployer.start();
    executor.execute(ejbDeployer);*/

    new Thread() {
        public void run() {
            try {
                ServerSocket serverSocket = new ServerSocket(Integer.parseInt(serverconfig.getShutdownport()));
                while (true) {
                    Socket sock = serverSocket.accept();
                    InputStream istream = sock.getInputStream();
                    istream.read(shutdownBt);
                    String shutdownStr = new String(shutdownBt);
                    String[] shutdownToken = shutdownStr.split("\r\n\r\n");
                    //log.info(shutdownStr);
                    if (shutdownToken[0].startsWith("shutdown WebServer")) {
                        synchronized (shutDownObject) {
                            shutDownObject.notifyAll();
                        }
                    }
                }
            } catch (Exception e) {
                log.error("Shutdown error", e);
                // TODO Auto-generated catch block
                //e.printStackTrace();
            }
        }
    }.start();

    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
        public void run() {
            log.info("IN shutdown Hook");
            synchronized (shutDownObject) {
                shutDownObject.notifyAll();
            }
        }
    }));
    try {
        synchronized (shutDownObject) {
            shutDownObject.wait();
        }
        //executor.shutdownNow();
        //serverSocketChannelServices.close();
        //embeddedJMS.stop();

    } catch (Exception e) {
        log.error("Error in object wait ", e);
        // TODO Auto-generated catch block
        //e1.printStackTrace();
    }
    try {
        mbs.invoke(name, "stop", null, null);
        mbs.invoke(name, "destroy", null, null);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    log.info("Halting JVM");
    log.info("Exiting JVM");
    /*try{
       Thread.sleep(10000);
    }
    catch(Exception ex){
               
    }*/

    //webserverRequestProcessor.stop();
    //webserverRequestProcessor1.stop();

    /*warDeployer.stop();
    executorService.stop();
    //ataServer.stop();
    //ataClient.stop();
    messageServer.stop();
    randomqueuemessagepicker.stop();
    roundrobinqueuemessagepicker.stop();
    topicpicker.stop();*/
    /*try {
       mbs.invoke(new ObjectName("com.app.server:type=SARDeployer"), "destroyDeployer", null, null);
    } catch (InstanceNotFoundException | MalformedObjectNameException
    | ReflectionException | MBeanException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
    }*/
    //earDeployer.stop();
    System.exit(0);
}

From source file:com.netflix.iep.http.RxHttpTest.java

@Test
public void connectTimeout() throws Exception {
    // Pick a free port with no server running
    ServerSocket ss = new ServerSocket(0);
    int serverPort = ss.getLocalPort();
    ss.close();/*from  w ww  .j a  v a 2 s.  c  o  m*/

    set(client + ".niws.client.ConnectTimeout", "100");
    int code = 200;
    statusCode.set(code);

    final CountDownLatch latch = new CountDownLatch(1);
    final AtomicReference<Throwable> throwable = new AtomicReference<>();
    rxHttp.get("niws://test/http://localhost:" + serverPort + "/empty").subscribe(Actions.empty(),
            new Action1<Throwable>() {
                @Override
                public void call(Throwable t) {
                    throwable.set(t);
                    latch.countDown();
                }
            }, new Action0() {
                @Override
                public void call() {
                    latch.countDown();
                }
            });

    latch.await();
    Assert.assertTrue(throwable.get() instanceof ConnectException);
}

From source file:eu.stratosphere.nephele.taskmanager.TaskManager.java

private int getAvailablePort() {
    ServerSocket serverSocket = null;
    int port = 0;
    for (int i = 0; i < 50; i++) {
        try {/* ww w  .j  a va 2  s  .c om*/
            serverSocket = new ServerSocket(0);
            port = serverSocket.getLocalPort();
            if (port != 0) {
                serverSocket.close();
                break;
            }
        } catch (IOException e) {
            LOG.debug("Unable to allocate port " + e.getMessage(), e);
        }
    }
    if (!serverSocket.isClosed()) {
        try {
            serverSocket.close();
        } catch (IOException e) {
            LOG.debug("error closing port", e);
        }
    }
    return port;
}

From source file:nl.nn.adapterframework.http.AuthSSLProtocolSocketFactoryBase.java

public ServerSocket createServerSocket(int port) throws IOException {
    return new ServerSocket(port);
}

From source file:com.mirth.connect.server.Mirth.java

/**
 * Test a port to see if it is already in use.
 * //from   w  ww.  j a  v  a  2  s  .com
 * @param port
 *            The port to test.
 * @param name
 *            A friendly name to display in case of an error.
 * @return
 */
private boolean testPort(String host, String port, String name) {
    ServerSocket socket = null;

    try {
        if (StringUtils.equals(host, "0.0.0.0") || StringUtils.equals(host, "::")) {
            socket = new ServerSocket(Integer.parseInt(port));
        } else {
            socket = new ServerSocket(Integer.parseInt(port), 0, InetAddress.getByName(host));
        }
    } catch (NumberFormatException ex) {
        logger.error(name + " port is invalid: " + port);
        return false;
    } catch (IOException ex) {
        logger.error(name + " port is already in use: " + port);
        return false;
    } finally {
        if (socket != null) {
            try {
                socket.close();
            } catch (IOException e) {
                logger.error("Could not close test socket for " + name + ": " + port);
                return false;
            }
        }
    }

    return true;
}

From source file:test.integ.be.agiv.security.IPSTSTest.java

private static int getFreePort() throws Exception {
    ServerSocket serverSocket = new ServerSocket(0);
    int port = serverSocket.getLocalPort();
    serverSocket.close();//www.j a  va  2s . co  m
    return port;
}