示例#1
0
        private void AtenderServidor()
        {
            try
            {
                while (true)
                {
                    int    nform;
                    byte[] msg2 = new byte[80];

                    server.Receive(msg2);
                    string[] trozos = Encoding.ASCII.GetString(msg2).Split('/');
                    int      codigo = Convert.ToInt32(trozos[0]);
                    string   mensaje;

                    switch (codigo)
                    {
                    case 1:     //Recibes la respuesta de iniciar sesion
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            if (mensaje == "1")
                            {
                                MessageBox.Show("Usuario y contraseña correctos");
                                this.Invoke(new DelegadoParaPonerTexto(PonFormConectar), new Object[] { usuario_tBx.Text });
                            }
                            else
                            {
                                MessageBox.Show("Los datos introducidos no son los correctos");
                            }
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 1");
                        }

                        break;

                    case 2:     //Recibes la respuesta de registrarse
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            if (mensaje == "1")
                            {
                                MessageBox.Show("Usuario registrado correctamente");
                            }
                            else if (mensaje == "0")
                            {
                                MessageBox.Show("Estos datos ya estan registrados");
                            }
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 2");
                        }
                        break;

                    case 3:     //Recibes la respuesta de darse de baja
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            if (mensaje == "1")
                            {
                                MessageBox.Show("Se ha dado de baja el usuario");
                                this.Invoke(new DelegadoParaDarseBaja(PonFormBaja));
                            }
                            else
                            {
                                MessageBox.Show("El jugador no esta en la base de datos");
                            }
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 3");
                        }
                        break;

                    case 4:     //Recibes la respuesta de las consultas
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            c.TomaRespuesta(mensaje);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 4");
                        }
                        break;

                    case 5:    //Resultado consulta partidas
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            partJ.TomaRespuesta(mensaje);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 13");
                        }
                        break;

                    case 6:     //resultado consulta datos de partida con ese jugador
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            partJ.PonResultado(mensaje);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 6");
                        }
                        break;

                    case 7:     //Notificacion de personas conectadas
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            Conectadoslbl.Invoke(new DelegadoParaPonerTexto(PonCon), new Object[] { mensaje });
                            dataGridView1.Invoke(new DelegadoParaPonerTexto(ActGrid), new Object[] { mensaje });
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 7");
                        }
                        break;

                    case 8:     //Notificacion de que ha sido invitado a jugar
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            accept_invitation.Invoke(new DelegadoParaPonerTexto(PonNoitficacion), new Object[] { mensaje });
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 8");
                        }
                        break;

                    case 9:     //Mensaje de que ha aceptado la partida
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            Aceptados.Add(mensaje);
                            Respuestas.Add(mensaje);
                            MessageBox.Show(mensaje + " ha aceptado la partida");
                            if (Invitaciones == Aceptados.Count)
                            {
                                MessageBox.Show("Todos los jugadores han aceptado la partida");
                                Empezar_Partida();
                            }
                            else if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                            {
                                MessageBox.Show("Algun jugador ha rechazado la partida");
                                Invitaciones = 0;
                                Respuestas.Clear();
                                Aceptados.Clear();
                            }
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 9");
                        }
                        break;

                    case 10:     //Notificacion de que alguien ha rechazado la partida
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            MessageBox.Show(mensaje + " ha rechazado la partida");
                            Respuestas.Add(mensaje);
                            if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                            {
                                MessageBox.Show("Algun jugador ha rechazado la partida");
                                Invitaciones = 0;
                                Respuestas.Clear();
                                Aceptados.Clear();
                            }
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 10");
                        }
                        break;

                    case 11:     //Notificacion de que la partida se esta iniciando
                        try
                        {
                            //MessageBox.Show("Iniciando partida");
                            ThreadStart ts = delegate { AbrirFormPartida(); };
                            Thread      T  = new Thread(ts);
                            T.Start();
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 11");
                        }
                        break;

                    case 12:     //Notificacion de que se ha enviado un mensaje al chat
                        try
                        {
                            nform   = Convert.ToInt32(trozos[1]);
                            mensaje = trozos[2].Split('\0')[0];
                            if (chat == null)
                            {
                                chat = mensaje;
                            }
                            else
                            {
                                chat = chat + Environment.NewLine + mensaje;
                            }
                            FormPartida[nform].ponMensaje(chat);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 12");
                        }
                        break;

                    case 13:     //Respuesta de si se han introducido bien los datos de la partida
                        mensaje = trozos[1].Split('\0')[0];
                        MessageBox.Show(mensaje);
                        break;

                    case 14:     //Respuesta ganador de la partida
                        try
                        {
                            nform   = Convert.ToInt32(trozos[1]);
                            mensaje = trozos[2].Split('\0')[0];
                            FormPartida[nform].ganPartida(mensaje);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 14");
                        }
                        break;

                    case 15:     //Respuesta de las partidas jugadas en una fecha
                        try
                        {
                            mensaje = trozos[1].Split('\0')[0];
                            partJ.TomaRespuesta(mensaje);
                        }
                        catch (FormatException)
                        {
                            MessageBox.Show("Error al procesar los datos de la respuesta 13");
                        }
                        break;
                    }
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("Error en la recepcion de los datos");
            }
        } //Metodo para atender los mensajes del servidor
示例#2
0
 public void PonResultado(string m) //Poner la respuesta mediante delegados
 {
     Conectadoslbl.Invoke(new DelegadoParaPonerTexto(TomaMensaje), new Object[] { m });
 }