Quantcast
Channel: Problemas Socket
Viewing all articles
Browse latest Browse all 4

Problemas Socket

$
0
0

Hola, buenas, tengo un servidor y un cliente (o varios depende), en un servidor tengo un label que muestra cuando se conecta un cliente y aumenta un entero diciendo cuantos hay conectados, tambien se habilitan controles, etc.

Tengo este codigo en el servidor

label1.Text = "Existen " + usuariosNum + " conectados";
            cliente = new UdpClient(12000);
            receptor = new IPEndPoint(new IPAddress(0), 0);
            Thread lectura = new Thread(new ThreadStart(EjecutarServidor));
            lectura.Start();

public void EjecutarServidor()
        {
            
            while(true)
            {
                byte[] datos = cliente.Receive(ref receptor);
                string numero = Convert.ToString(receptor);
                if (numero == "127.0.0.1:50000")
                {
                    usuariosNum++;
                    Invoke(new Action(() => label1.Text = "Existen " + usuariosNum + " conectados"));
                    Invoke(new Action(() =>button1.Enabled = true));
                }
                if (numero == "127.0.0.1:50001")
                {
                    usuariosNum++;
                    Invoke(new Action(() => label1.Text = "Existen " + usuariosNum + " conectados"));
                }
                if(numero=="cerrar")
                {
                    usuariosNum--;
                    Invoke(new Action(() => label1.Text = "Existen " + usuariosNum + " conectados"));
                    Invoke(new Action(() => button1.Enabled = false));
                }
            }
        }

y este en el cliente

 receptor = new IPEndPoint(new IPAddress(0), 0);
            cliente = new UdpClient(50000);
            byte[] datos = Encoding.ASCII.GetBytes("127.0.0.1:50000");
            cliente.Send(datos,datos.Length, "127.0.0.1", 12000); 

Quisiera poder hacer dos cosas

1) Cuando ejecuto un cliente, como puedo mostrar un label o algo que me diga que el servidor no esta iniciado y que cuando detecte al servidor ya en linea, mande esos datos (lo digo porque cuando inicio el servidory despues el cliente, me manda la informacion correcta, pero cuando inicio el cliente antes que el servidor no manda el dato o el dato lo mando al "vacio")

2)Como puedo implementar que cuando cierro algun cliente (form se cierra) le diga al servidor o el servidor se de cuenta que ya no esta en linea y descuente el numero de usuarios en linea.

Muchas gracias por la ayuda brindada.


Viewing all articles
Browse latest Browse all 4

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.





Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.