Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/11/2008, 14:46
megaligathor
 
Fecha de Ingreso: septiembre-2008
Mensajes: 68
Antigüedad: 16 años, 4 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 =)