コード例 #1
0
ファイル: Form1.cs プロジェクト: marcs1000/Proyecto-SO
        private void AtenderServidor()
        {//bucle de atencion a las peticiones del servidor
            while (true)
            {
                byte[] msg2 = new byte[200];
                server.Receive(msg2);
                string   mensaje = Encoding.ASCII.GetString(msg2).Split('\0')[0];
                string[] trozos  = mensaje.Split('/');
                int      codigo  = Convert.ToInt32(trozos[0]);



                switch (codigo)
                {
                case 1:    //log in
                    MessageBox.Show(trozos[1]);
                    string mensajerecivido = trozos[1];
                    string logincorrecto   = "Sesion iniciada correctamente";
                    if (string.Equals(mensajerecivido, logincorrecto))
                    {
                        DelegadoMostrarVentanas ventanas = new DelegadoMostrarVentanas(MostrarVentanas);
                        groupBox2.Invoke(ventanas, new object[] { });
                        Juego.Invoke(ventanas, new object[] { });
                        groupBox1.Invoke(ventanas, new object[] { });
                        Registro.Invoke(ventanas, new object[] { });
                    }
                    break;

                case 2:    //registro
                    MessageBox.Show(trozos[1]);
                    break;

                case 4:    //consulta
                    MessageBox.Show(trozos[1]);
                    break;

                case 5:    //consulta
                    MessageBox.Show(trozos[1]);
                    break;

                case 7:    //peticion para los invitados
                    string anfitrion = trozos[2];
                    partida = Convert.ToInt32(trozos[1]);
                    string       MessageBoxTitle   = "Invitación de chat";
                    string       MessageBoxContent = anfitrion + " te ha invitado a un chat cond id " + partida + "\n Deseas aceptarlo?";
                    string       respuesta_invitation;
                    DialogResult result = MessageBox.Show(MessageBoxContent, MessageBoxTitle, MessageBoxButtons.YesNo);
                    switch (result)
                    {
                    case DialogResult.Yes:

                        respuesta_invitation = "8/" + anfitrion + "/" + partida + "/" + usuario.Text + "/" + Convert.ToString(result) + "/1";
                        byte[] accept = System.Text.Encoding.ASCII.GetBytes(respuesta_invitation);
                        server.Send(accept);
                        ServicioChats(usuario_pc, partida);
                        break;

                    case DialogResult.No:
                        respuesta_invitation = "8/" + anfitrion + "/" + partida + "/" + usuario.Text + "/" + Convert.ToString(result) + "/0";
                        byte[] decline = System.Text.Encoding.ASCII.GetBytes(respuesta_invitation);
                        server.Send(decline);
                        break;
                    }

                    break;

                case 8:    //respuesta del anfitrion sobre las invitaciones
                    partida = Convert.ToInt32(trozos[1]);
                    string invitado      = trozos[2];
                    string respuesta_inv = trozos[3];
                    MessageBox.Show("Respuesta del invitado " + invitado + " al chat de id " + partida + " es " + respuesta_inv);
                    if (respuesta_inv == "Yes")
                    {
                        ServicioChats(usuario_pc, partida);
                    }
                    break;

                case 9:    //recebir mensaje del chat
                    int partida9 = Convert.ToInt32(trozos[1]);
                    autor        = trozos[2];
                    mensaje_chat = trozos[3];
                    EnviarChatForm(partida9, autor, mensaje_chat);
                    //DelegadoParaEnviarChatMain delegado9 = new DelegadoParaEnviarChatMain(EnviarChatForm);
                    //this.Invoke(delegado9, new object[] { partida9, autor, mensaje_chat });
                    break;

                case 999:    //notificaciones de conexion

                    int numcon999 = Convert.ToInt32(trozos[1]);
                    DelegadoListaConectados delegado999 = new DelegadoListaConectados(PonerEnGrid);
                    dataGridView1.Invoke(delegado999, new object[] { numcon999, trozos });
                    break;
                }
            }
        }
コード例 #2
0
ファイル: LogIn.cs プロジェクト: AntonioAlarcon32/Proyecto-SO
        private void AtenderServidor()//Funcion que atiende al servidor. Dependiendo del codigo que reciba hara unas acciones.
        {
            while (true)
            {
                byte[] msg2 = new byte[80];
                try
                {
                    server.Receive(msg2);
                }
                catch (SocketException ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }

                string[] mensaje = Encoding.ASCII.GetString(msg2).Split(':');

                int    codigo    = Convert.ToInt32(mensaje[0]);
                string contenido = mensaje[1].Split('\0')[0];


                switch (codigo)
                {
                case 1:
                    if (contenido == "0")
                    {
                        DelegadoInicioSesion delegadoStart = new DelegadoInicioSesion(DelegarInicioSesion);
                        Enviar.Invoke(delegadoStart);
                        MessageBox.Show("Sesion Iniciada");
                    }
                    else
                    {
                        string mensaje2 = "0/" + User.Text;
                        byte[] msg3     = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg3);
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        MessageBox.Show("El nombre ya está registrado");
                        Atender.Abort();
                    }
                    break;

                case 2:
                    if (contenido == "0")
                    {
                        DelegadoInicioSesion delegadoStart = new DelegadoInicioSesion(DelegarInicioSesion);
                        Enviar.Invoke(delegadoStart);
                        MessageBox.Show("Sesion Iniciada");
                    }
                    else
                    {
                        string mensaje2 = "0/" + User.Text;
                        byte[] msg3     = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg3);
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        MessageBox.Show("El nombre y/o la contraseña son incorrectos.");
                        Atender.Abort();
                    }
                    break;

                case 3:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado el jugador");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Número de turnos:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 4:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado la partida");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Jugadores:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 5:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado el jugador");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Número de turnos:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 6:
                    DelegadoListaConectados delegadoLista = new DelegadoListaConectados(RellenarListaConectados);
                    dataGridView1.Invoke(delegadoLista, new object[] { contenido });
                    break;

                case 7:
                    DelegadoInvitacionRecibida delegadoInv = new DelegadoInvitacionRecibida(DelegarInvitacionRecibida);
                    Invitacion.Invoke(delegadoInv, new object[] { contenido });
                    UsuarioInvita = contenido;
                    break;

                case 8:
                    Aceptados.Add(contenido);
                    Respuestas.Add(contenido);
                    MessageBox.Show(contenido + " ha aceptado la partida");
                    if (Invitaciones == Aceptados.Count)
                    {
                        MessageBox.Show("Todos los jugadores han aceptado la partida");
                        Empezar_Partida();
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    else if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                    {
                        MessageBox.Show("Algun jugador ha rechazado la partida");
                        DelegadoInvitacionRechazada delegadorech1 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                        Invite.Invoke(delegadorech1);
                        Invitaciones = 0;
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    break;

                case 9:
                    MessageBox.Show(contenido + " ha rechazado la partida");
                    Respuestas.Add(contenido);
                    if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                    {
                        DelegadoInvitacionRechazada delegadorech2 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                        Invite.Invoke(delegadorech2);
                        MessageBox.Show("Algun jugador ha rechazado la partida");
                        Invitaciones = 0;
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    break;

                case 10:
                    IDChat = Convert.ToInt32(contenido);
                    MessageBox.Show("Iniciando partida " + IDChat);
                    DelegadoInvitacionRechazada delegadorech3 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                    Invite.Invoke(delegadorech3);
                    string mensaje3 = "13/" + IDChat + "," + User.Text + "," + EquipoBatallaPropio.GetPokemon(0).Nombre + "," + EquipoBatallaPropio.GetPokemon(1).Nombre + "," + EquipoBatallaPropio.GetPokemon(2).Nombre;
                    byte[] msg      = System.Text.Encoding.ASCII.GetBytes(mensaje3);
                    server.Send(msg);
                    break;

                case 11:
                    int ID = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    int IDindex = BuscarID(ID);
                    Chats[IDindex].EscribirMensaje(contenido);
                    break;

                case 12:
                    ID = Convert.ToInt32(contenido.Split('-')[0]);
                    string usuario = contenido.Split('-')[1];
                    int    salida  = Convert.ToInt32(contenido.Split('-')[2]);
                    IDindex = BuscarID(ID);
                    if (salida == 1)
                    {
                        MessageBox.Show("Partida finalizada");
                    }
                    else
                    {
                        MessageBox.Show("El usuario " + usuario + " ha abandonado la partida");
                    }
                    Chats[IDindex].AbandonarPartida();
                    break;

                case 13:
                    string[] TuEquipo = contenido.Split(',');
                    SetEquipoPropio(TuEquipo[0], TuEquipo[1], TuEquipo[2]);
                    DelegadoActivarInvitacion delegadoInvite = new DelegadoActivarInvitacion(DelegarActivarInvitacion);
                    Invite.Invoke(delegadoInvite);
                    break;

                case 14:
                    string[] content = contenido.Split('-');
                    int      IDa     = Convert.ToInt32(content[0]);
                    contenido = content[1];
                    content   = contenido.Split(',');
                    bool OponenteRecibido = false;
                    if (content[0] != User.Text)
                    {
                        SetEquipoOponente(content[1], content[2], content[3]);
                        Oponente         = content[0];
                        OponenteRecibido = true;
                    }
                    if (OponenteRecibido == true)
                    {
                        ThreadStart ts2   = delegate { AbrirChat(); };
                        Thread      forms = new Thread(ts2);
                        forms.Start();
                    }
                    break;

                case 15:
                    ID        = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    IDindex   = BuscarID(ID);
                    Chats[IDindex].bt.RecibirOrden(contenido);
                    break;

                case 16:
                    if (contenido == "0")
                    {
                        MessageBox.Show("Usuario Eliminado");
                        DelegadoDesconexion delegadoStart = new DelegadoDesconexion(DelegarDesconexion);
                        Desconexion.Invoke(delegadoStart);
                    }
                    else
                    {
                        MessageBox.Show("No se ha podido eliminar el usuario");
                    }
                    break;

                case 17:
                    ID        = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    IDindex   = BuscarID(ID);
                    Chats[IDindex].PokemonDebilitadoDelegado(contenido);
                    break;
                }
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: sumayabl/BingoGame
        private void atender_mensaje_servidor()
        {
            while (true)
            {
                //Recibimos mensaje del servidor
                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];

                switch (codigo)
                {
                case 1:       //crear usuario

                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        MessageBox.Show("Registrado.");
                    }
                    else
                    {
                        MessageBox.Show("No registrado.\nInténtelo más tarde.");
                    }

                    break;

                case 2:       //iniciar sesion

                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        conectado = trozos[2].TrimEnd('\0');
                        EnableLogIn();
                    }
                    else
                    {
                        MessageBox.Show("Acceso Denegado, no está registrado.\nPruebe con otros credenciales o inténtelo más tarde.");
                    }

                    break;

                case 3:       //Mas partidas ganadas

                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        servicio1 = trozos[2];
                        //MessageBox.Show("El jugador que ha ganado más partidas es: " + words[2]);
                    }
                    else
                    {
                        servicio1 = "Algo ha ido mal.";
                        //MessageBox.Show("No hay resultado.\nInténtelo más tarde.");
                    }

                    break;

                case 4:       //Mas puntos

                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        servicio2 = trozos[2];
                        //MessageBox.Show("El jugador que tiene más puntuación es: " + words_2[2]);
                    }
                    else
                    {
                        servicio2 = "Algo ha ido mal.";
                        //MessageBox.Show("No hay resultado.\nInténtelo más tarde.");
                    }

                    break;

                case 5:       //servicio1

                    MessageBox.Show("Los jugadores que han jugado con " + textBox1.Text + " son:" + mensaje + ".");

                    break;

                case 6:
                    //Lista de conectados

                    DelegadoLimpiarLista delegadoLimpiarLista = new DelegadoLimpiarLista(LimpiarLista);
                    PlayerList.Invoke(delegadoLimpiarLista);

                    int i      = 0;
                    int result = Int32.Parse(trozos[1]);

                    while (i < result)
                    {
                        DelegadoListaConectados delegadoListaConectados = new DelegadoListaConectados(PonListaConectados);
                        PlayerList.Invoke(delegadoListaConectados, new object[] { trozos[i + 2] });

                        //PlayerList.Items.Add(trozos[i + 2]);
                        i++;
                    }

                    break;

                case 7:      //Peticion invitacion

                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        string       anfitrion = trozos[3].TrimEnd('\0');
                        DialogResult resp      = MessageBox.Show("¿Aceptas jugar?", anfitrion + " te esta invitando a jugar", MessageBoxButtons.OKCancel);
                        if (resp == DialogResult.OK)
                        {
                            //Acepta
                            DelegadoListaInvitados delegadoListaInvitados = new DelegadoListaInvitados(PonListaInvitados);
                            ListaInvitar.Invoke(delegadoListaInvitados, new object[] { trozos[2] });

                            string acepta = "7/SI/" + trozos[2] + "/" + trozos[3];
                            byte[] msg    = System.Text.Encoding.ASCII.GetBytes(acepta);
                            server.Send(msg);
                        }
                        else
                        {
                            //No acepta
                            string acepta = "7/NO" + trozos[2] + "/" + trozos[3];
                            byte[] msg    = System.Text.Encoding.ASCII.GetBytes(acepta);
                            server.Send(msg);
                        }
                    }

                    break;

                case 8:      //Respuesta invitacion

                    string invitado = trozos[2].TrimEnd('\0');
                    if (trozos[1].TrimEnd('\0') == "SI")
                    {
                        string texto = " ha aceptado jugar.";
                        DelegadoParaMensajesInvitados delegadoMensajesInvitados = new DelegadoParaMensajesInvitados(PonMensajeInvitado);
                        mensajes.Invoke(delegadoMensajesInvitados, new object[] { invitado, texto });
                    }
                    else
                    {
                        string texto = " no ha aceptado jugar.";
                        DelegadoParaMensajesInvitados delegadoMensajesInvitados = new DelegadoParaMensajesInvitados(PonMensajeInvitado);
                        mensajes.Invoke(delegadoMensajesInvitados, new object[] { invitado, texto });
                    }

                    break;

                case 9:      //Insertar mensaje en chat

                    string usuario = trozos[1].TrimEnd('\0');
                    mensaje = trozos[2].TrimEnd('\0');
                    string text = usuario + ": " + mensaje;

                    DelegadoChat delegadoChat = new DelegadoChat(PonerText);
                    mensajes.Invoke(delegadoChat, new object[] { text });

                    break;
                }
            }
        }