Puede pasar 0
como un número de puerto para crear un socket de servidor en cualquier puerto libre, o hacer un método como este para crear un socket de servidor para cualquier puerto libre en el rango dado:
public java.net.ServerSocket createServerSocket(int rangeStart, int rangeEnd)
throws java.io.IOException {
for(int port=rangeStart; port<=randeEnd; port++) {
try {
return new ServerSocket(port);
} catch(java.net.BindException be) {
// debug/warning here
continue;
}
}
throw new java.io.IOException("Failed to create a server socket, all ports between " +
rangeStart + " - " + rangeEnd + " are already in use.");
}
El loop no se ocupa de otra excepción (SecurityException
por ejemplo), pero puede agregarla.
prueba getLocalPort y verifica si eso es cierto. – Codemwnci
¿Es un buen libro lo que estás leyendo? "simple socket viejo" me suena extraño. –
Sí, es Head First Java, un libro para principiantes. – Eugene