| |||
![]() 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. |
| |||
![]() 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 =) |