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

saber si un host sigue conectado

Estas en el tema de saber si un host sigue conectado en el foro de .NET en Foros del Web. Saludos a todos otra vez. Estuve probando varios métodos y propiedades de una variable tipo Socket que pertenece a la importación de objetos System.net.socket de ...
  #1 (permalink)  
Antiguo 04/11/2008, 21:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 0
Busqueda saber si un host sigue conectado

Saludos a todos otra vez. Estuve probando varios métodos y propiedades de una variable tipo Socket que pertenece a la importación de objetos System.net.socket de vb.net. Encontré una propiedad que me indica si se ha conectado con un host remoto desde una última operación, me refiero a la propiedad ".connected", esta propiedad me devuelve "true" al momento que mi app server acepta la conexión de mi app cliente en otra pc. Pero al momento que cierro mi app cliente esta propiedad me sigue devolviendo true. ¿Hay alguna manera de hacer que mi app servidor sepa que la app cliente fue cerrada?. Una de mis ideas es que al momento de cerrar mi app cliente mandarle un string que le diga a mi app server que se cerrará de este modo le hago un close desde el servidor. Pero yo pienso que debe haber una solución más objetiva relacionada a esta función. Por ello, pido una idea alternativa. De antemano muchas gracias nuevamente.
  #2 (permalink)  
Antiguo 06/11/2008, 14:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 0
Sonrisa Respuesta: saber si un host sigue conectado

Saludos nuevamente. Bueno no hubo respuestas a esta consulta pero en fin, logré encontrar una solución y quiero compartirla con los amigos de este foro =) .

Para saber si una app cliente fue cerrada o finalizada de cualquier modo. Coloqué un timer (objeto) en su evento "Ticks" con un tiempo de repetición de 3000 milisegundos (3 segundos).

Código:
'Se acepta solo 11 conexiones
Dim Connections(10) As Socket 

Private Sub tmrVerificarCon_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrVerificarCon.Tick

for i As integer = 0 to Connections.Length -1 Step 1
        If Not Connections(0) Is Nothing Then
            If Not Connections(0).Poll(1500, SelectMode.SelectRead) Then
                Return
            End If
            Dim hostinformation As IPEndPoint = Connections(0).RemoteEndPoint
            Dim MensajeRecibido As String = "La IP : " + hostinformation.Address.ToString + " ha finalizado conexión"
            Connections(0).Close()
            Connections(0) = Nothing
            If txtChat.Text = "" Then
                txtChat.Text = MensajeRecibido
            Else
                txtChat.Text = txtChat.Text + vbCrLf + MensajeRecibido
            End If
        End If
next
    End Sub

Esta es una parte de mi código de prueba "Un simple chat" del lado del servidor y como observan usé el método "poll" que me devuelve true cuando el app cliente se ha cerrado, no necesariamente llamando al método "close". Espero ayudar con este grano de arena al foro. Hasta la próxima =)
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 12:51.