Hola en mi aplicación cliente/servidor salen todos los conectados en un listView, pero no tengo controlado que cuando un cliente se desconecte salga del listView.

Yo había pensado algo así, porque desconozco si tcpClient tiene algo para detectar la desconexión. Que vaya enviando cada 3 segundos un texto, y el server cada 3 segundos compruebe si le llega esto, si no sumara 1 en una variable estaAqui en un bucle y cuando llegue a 3 que borre el cliente del listView. Me parece que me estoy complicando mucho y tiene que haber un método mas sencillo creo yo, jaja
regex = Regex.Match(data, "Sigo aqui!", RegexOptions.IgnoreCase); 

            if (regex.Success) //Si se encuentra Sigo aqui!
            {
                estasAqui = 0;
            }
            else //Si no  se encuentra Sigo aqui!
            {
                ++estasAqui;

                if (estasAqui > 3) //Si estasAqui tiene mas de 3 borraremos el cliente del listView
                {
                    listView1.Items.RemoveAt(0);
                }
            }
Lo que tú haces es el típico 'keep alive'. Se utiliza mucho y es correcto hacerlo. En la función que uses para leer y escribir los paquetes pon un try/catch, si salta una excepción al leer o escribir significará que el socket está desconectado.
Responder

Volver a “VB/.NET”