¿Cómo omitir un puerto si está actualmente en uso?

Actualmente estoy ejecutando jboss en el puerto 8090 y mi socket de cliente se ejecuta en jboss. Envío la solicitud al socket del servidor a intervalos programados para obtener datos. Ahora mi pregunta es

  1. Como el puerto 8090 ya está en uso, ¿es posible que el socket del cliente se abra en ese puerto y conecte el servidor?

  2. ¿Es posible ejecutar dos aplicaciones en un solo puerto?

  3. Cómo omitir un puerto si ya está en uso. El socket de Mi cliente se abre a la vez 5,000 solicitudes, por lo que abre muchos puertos locales simultáneamente. Entonces, si ya hay algún puerto en uso, necesito omitirlo.

Respuesta 1

Para TCP / IP, no. Solo puede tener una aplicación escuchando en un solo puerto a la vez. Ahora, si tuviera 2 tarjetas de red, podría hacer que una aplicación escuche en la primera IP y la segunda en la segunda IP usando el mismo número de puerto.

Para omitirlo, necesitaría una simple verificación para ver si está en uso:

boolean portTaken = false;
ServerSocket socket = null;
try {
    socket = new ServerSocket(portNumber);
    } 
catch (IOException e) {
    portTaken = true;
} 

Luego, para cada puerto, verifique el valor booleano para ver si está en uso hasta que encuentre uno disponible.

Respuesta: 2

Dos métodos para implementar una cadena. Una cadena contada registra explícitamente su longitud. La longitud de la cadena terminada está determinada por una marca de final de cadena. ¿Alguien puede dar un ejemplo de contado ...

Quiero hacer algunos cálculos geométricos en Java y descubrí que Spatial4j debería satisfacer mis necesidades. Quiero poder calcular cosas como si dos polígonos se superponen o cuál es su cuadro delimitador. ...

¿Es posible serializar objetos Java a listas y mapas con la biblioteca Jackson directamente? Quiero decir no a String, no a byte [], sino a java.util.Map y java.util.List. Esto puede ser útil cuando ...

Me estoy mudando a JBoss AS 7.1.1.Final y tengo un problema. Todo funciona bien con 7.1.0.CR1b pero ahora tengo este error en un componente OSGi: 14: 17: 51,888 ERROR [stderr] (http - 127.0.0.1-8080-1) Causado ...