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

Duda sobre Sockets

Estas en el tema de Duda sobre Sockets en el foro de Java en Foros del Web. Hola muy buenas a tod@s, estoy empezando a mirar el tema de sockets en java y me salen un par de dudas: Vereis, quiero hacer ...
  #1 (permalink)  
Antiguo 03/09/2008, 04:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Duda sobre Sockets

Hola muy buenas a tod@s, estoy empezando a mirar el tema de sockets en java y me salen un par de dudas:

Vereis, quiero hacer un programa sencillo, que cada cierto tiempo compruebe si estan ejecutandose una serie de servicios en la red (http, ftp, mysql...). Habia pensado crear un socket para cada servicio y con este, hacer alguna prueba de conectividad.

Mis dudas són:

Cuando creo el socket, si se asocia correctamente (bind) ¿es seguro que esta funcionando el servicio? ¿o solamente indica que el puerto está abierto en la maquina remota?

¿Se os ocurre alguna manera de comprobar si los servicios atienden correctamente a las peticiones y el tiempo de respuesta?

Muchas gracias por vuestra ayuda, estoy empezando y voy bastante perdida... :
  #2 (permalink)  
Antiguo 03/09/2008, 14:50
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda sobre Sockets

Hola:

En un socket hay dos programas implicados: un cliente y un servidor. El servicio lo ofrece el servidor y es el que hace bind. Por ello, para comprobar los servicios http, ftp, mysql, etc, no tienes que crear un servidor ni hacer el bind(). Basta con hacer un cliente que se conecte a ese puerto/host (connect()).

Si obtienes un error "Connect refused" es que no hay nadie atendiendo ese puerto. Puedes entonces asegurar que el servidor no está arrancado.

Si consigues conectarte, quiere decir que hay alguien atendiendo ese puerto. Dependiendo del grado de certeza que quieras para asegurarte que es ese servicio en ese puerto, basta solo con establecer la conexión y fiarse de que el del otro lado es el que debe, o bien debes intentar enviar algún mensaje con el protocolo adecuado y ver que el servidor responde como se supone. Esto implica que debes más o menos conocer todos los protocolos de los servicios que quieres verificar.

Se buena.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 04/09/2008, 11:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Duda sobre Sockets

Muchas gracias por responder chuidiang... tienes toda la razón, cuando dije lo del bind me referia en realidad al connect.

Ya que veo que dominas el tema... aprovecho para preguntar como se implementaria un ping en java, o alguna manera de calcular el tiempo de respuesta, utilizando el socket creado.

Gracias y perdon por ser tan pesadita... :
  #4 (permalink)  
Antiguo 04/09/2008, 22:54
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Duda sobre Sockets

Hola:

No hay ping como tal en java. Sin embargo, puedes hacer un trocito de código como el que se muestra en How to ICMP Ping....

Se buena.
__________________
Apuntes Java
Wiki de Programación
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:47.