예제 #1
0
        private void AtenderServidor()
        {
            while (true)
            {
                //Recibimos la respuesta del servidor //  7/invitador
                byte[] msg2 = new byte[80];
                server.Receive(msg2);
                string[] trozos  = Encoding.ASCII.GetString(msg2).Split('/');
                int      codigo  = Convert.ToInt32(trozos[0]);
                string   mensaje = trozos[1].Split('\0')[0];
                Form6    F6      = new Form6();
                Form7    F7      = new Form7();
                string[] seg;
                string   invitador;
                int      numInvitados;
                string   invitado;
                string   respuesta;

                switch (codigo)
                {
                case 1:    //Puedo crear una cuenta

                    MessageBox.Show(mensaje);
                    break;

                case 2:    //Puedo iniciar sesión? Recibo un mensaje de la forma Y_Usuario o N

                    string[] segmentos = mensaje.Split('_');

                    if (segmentos[0] == "Y")
                    {
                        MessageBox.Show("Has sido autenticado correctamente!!!");
                        usuario     = segmentos[1];
                        label1.Text = "Has iniciado sesión como: " + usuario;
                    }
                    else if (segmentos[0] == "N")
                    {
                        MessageBox.Show("Contraseña incorrecta");
                    }
                    else if (segmentos[0] == "USER")
                    {
                        MessageBox.Show("El usuario no existe.");
                    }

                    break;

                case 3:    //Hay ganadores para una fecha?

                    if (mensaje == "NOT_FOUND")
                    {
                        MessageBox.Show("No hay ganadores para esta fecha");
                    }
                    else
                    {
                        MessageBox.Show(mensaje);
                    }
                    break;

                case 4:    //Hay ganadores para una duración?

                    if (mensaje == "NOT_FOUND")
                    {
                        MessageBox.Show("No hay ganadores con la duracion de partida proporcionada ");
                    }
                    else
                    {
                        MessageBox.Show(mensaje);
                    }
                    break;

                case 5:    //Que usuarios hay conectados?

                    F6.setListado(mensaje);
                    F6.setUsuario(usuario);
                    F6.ShowDialog();
                    break;

                case 6:                   //Hay una notificación de nuevo conectado!

                    conectados = mensaje; //  2_anakilator_juanito23
                    F6.setListado(conectados);
                    F6.setUsuario(usuario);
                    F6.ShowDialog();
                    break;

                case 7:    //Hay una invitación: 7/invitador_numInvitados_invitado


                    seg = mensaje.Split(new char[] { '_' }, 3);


                    invitador    = seg[0];
                    numInvitados = Convert.ToInt32(seg[1]);
                    invitado     = seg[2];



                    if (invitador != usuario)
                    {
                        MessageBox.Show("Hola " + usuario + ", " + invitador + " te ha invitado a jugar!");
                        F7.setListado(conectados);
                        F7.setInvitador(invitador);
                        F7.ShowDialog();
                        respuesta = F7.GetRespuesta();
                        //Enviamos petición con la respuesta de la invitacion
                        string mensj = "8/" + invitador + "/" + numInvitados + "/" + invitado + "/" + respuesta;
                        byte[] msg   = System.Text.Encoding.ASCII.GetBytes(mensj);
                        server.Send(msg);
                    }
                    break;

                case 8:     //Recibimos respuesta de la invitacion: 8/invitador/num_invitados/invitado/siOno

                    seg = mensaje.Split(new char[] { '_' }, 4);


                    invitador = seg[0];
                    //numInvitados = Convert.ToInt32(seg[1]);
                    invitado  = seg[2];
                    respuesta = seg[3];

                    if (respuesta == "no")
                    {
                        MessageBox.Show(invitado + " ha rechazado la invitación");
                    }
                    else
                    {
                        F8.setInvitador(invitador);
                        F8.setUsuario(invitado);
                        F8.ShowDialog();
                    }
                    break;
                }
            }
        }