Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con un Socket

Estas en el tema de Ayuda con un Socket en el foro de Java en Foros del Web. Buenas Tengo un problema un poco grave, debido a que no existe un ping en java y mi aplicación corre con la versión 1.4.2_16 de ...
  #1 (permalink)  
Antiguo 26/03/2009, 19:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Ayuda con un Socket

Buenas

Tengo un problema un poco grave, debido a que no existe un ping en java y mi aplicación corre con la versión 1.4.2_16 de la maquina virtual, tuve que ponerme a investigar como hacer para saber si un host esta activo dentro de una red. Les comento, cuando el host esta activo la solución funciona de maravilla, el problema viene cuando el host no esta activo, el tiempo que tarda en responder la aplicación que el host no esta activo es excesivo (al rededor de 1 minuto y medio), lo que quiero es reducir ese tiempo a quizá 5 segundos, dicho de otra manera si el host no responde en 5 segundos, cerrar el socket y continuar, pero no tengo idea de como hacerlo, ojalá me puedan dar una mano, se los agradezco mucho.

Código:
        try
        {
            Socket socketA = new Socket();
            //Se crea un nuevo socket y a continuación se especifica la dirección IP y
           //el puerto por el que se conectará
            socketA.connect(new InetSocketAddress("192.168.1.18", 1025));
            if(!socketA.getKeepAlive())
            {
                socketA.setKeepAlive(true);
                System.out.println("La conexion con 192.168.1.18 es: " + socketA.getKeepAlive());
                socketA.close();
            } 
            else
            {  //No se porque la sentencia else la ignora y se va directamente al catch
                System.out.println("La conexion ha fallado");
                socketA.close();
            }
        }
        catch(Exception exception)
        {
            System.out.println("La conexion con el nodo ha fallado");
        }
  #2 (permalink)  
Antiguo 27/03/2009, 01:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ayuda con un Socket

¿Has probado a ponerle un Timeout al socket?
http://java.sun.com/j2se/1.4.2/docs/...tSoTimeout(int)

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 27/03/2009, 10:36
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: Ayuda con un Socket

He estado leyendo la documentación y probando, pero hasta el momento nada.

Alguna sugerencia. Gracias.
  #4 (permalink)  
Antiguo 27/03/2009, 18:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Ayuda con un Socket

Señores ya lo resolví...

es colocar esto (,500)

Código:
        try
        {
            Socket socketA = new Socket();
            socketA.connect(new InetSocketAddress("102.15.252.80", 1025), 500);
            
            if(!socketA.getKeepAlive())
            {
                socketA.setKeepAlive(true);
                System.out.println("La conexion con 102.15.252.80 es: " + socketA.getKeepAlive());
                socketA.close();
            } 
        }
        catch(Exception exception)
        {
            System.out.println("La conexion ha fallado");
        }
Gracias a aquellos que se interesaron por este tema.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:22.