Hola bueno, no deberías tratar al host como un String, o como un int, deberías usar el Objeto concebido para esta tarea, un
InetSocketAddres así podrás especificar el timeout en el método connect del socket, A continuación pongo un ejemplo:
package vnclookup;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
/**
*
* @author ryogi
*/
public class VNCLookUp {
private static InetSocketAddress isa;
public static void main
(String[] args
) { try {
isa = new InetSocketAddress( args[0],
System.
out.
println("[E] Argumentos invalidos."); }
System.
out.
println("[+] Intentando " + isa.
getHostName() + ":" + isa.getPort());
if ( isServerUp(isa) ) {
System.
out.
println("[*] Server encontrado."); } else {
System.
out.
println("[*] Server no encontrado."); }
}
public static boolean isServerUp (InetSocketAddress isa) {
try {
sock.connect(isa, 5000);
return false;
}
return true;
}
}
Puedes ver como en la linea subrayada se intenta conectar el InetSocketAddress con un timeout de 5 segundos:
sock.connect(isa, 5000);
puedes usarlo de la siguiente manera:
java VNCLookUp 192.168.0.1 5900
Donde el primer argumento es la IP y el segundo es el puerto. El código fue probado con un server x11vnc
Espero sea de ayuda.
Saludos