Tengo la necesidad de descubrir puertos abiertos en un servidor remoto. Me pregunto si esto es posible. Estaba pensando en abrir un socket, y si esto tiene éxito, significa que se usa ... de lo contrario, si recibo una excepción, no se usa.Pruebe si el puerto remoto está en uso
Por ejemplo,
public boolean isActive() {
Socket s = null;
try {
s = new Socket();
s.setReuseAddress(true);
SocketAddress sa = new InetSocketAddress(this.host, this.port);
s.connect(sa, 3000);
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (s != null) {
try {
s.close();
} catch (IOException e) {
}
}
}
return false;
}
es éste un enfoque viable?
posible duplicado de [sockets: Descubre la disponibilidad del puerto utilizando Java] (http://stackoverflow.com/questions/434718/sockets-discover-port-availability-using-java) – HCarrasko
@Hector Las respuestas en que se la pregunta se trata principalmente de probar si algo está vinculado a un puerto localmente. Esta pregunta es sobre un sistema remoto. – Kenster
Creo que la respuesta de @Alain Pannetier debería ser la aceptada. – Alfergon