コード例 #1
0
        public void EjecutarMensaje(PaqueteEntrada mensaje, ClienteMonopolio.Modelo.Jugador jugador, ClienteMonopolio.Modelo.Juego juego, ClienteMonopolio.Graficos.GestionarVentanas graficos)
        {
            IMensajeEntrante IMensaje = Verificar_Mensaje(mensaje, graficos);

            if (IMensaje == null)
            {
                return;
            }

            try
            {
                IMensaje.Ejecutar(mensaje, jugador, juego, graficos);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                return;
            }
        }
コード例 #2
0
        private IMensajeEntrante Verificar_Mensaje(PaqueteEntrada Split, ClienteMonopolio.Graficos.GestionarVentanas graficos)
        {
            int Codigo_Entrada        = -1;
            IMensajeEntrante IMensaje = null;

            try
            {
                Codigo_Entrada = Convert.ToInt32(Split.PopString());

                if (!_mensajesEntrantes.TryGetValue(Codigo_Entrada, out IMensaje))
                {
                    return(null);
                }

                return(IMensaje);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #3
0
ファイル: Conexion.cs プロジェクト: Spolm/MonoPolioRedes
        void LecturaDelServidor(IAsyncResult iar)
        {
            int    BytesRecibidos;
            string mensajeRecibido;

            try
            {
                _jugador.Cliente = (TcpClient)iar.AsyncState;
                BytesRecibidos   = _jugador.Cliente.GetStream().EndRead(iar);

                if (BytesRecibidos == 0)
                {
                    MessageBox.Show("Conexión cerrada.");
                    _graficos.CerrarVentanas();
                    return;
                }

                mensajeRecibido = Encoding.ASCII.GetString(_jugador.Lectura, 0, BytesRecibidos);

                _paquete = new PaqueteEntrada(mensajeRecibido.Split(';'));
                _mensajeManager.EjecutarMensaje(_paquete, _jugador, _juego, _graficos);

                _jugador.Lectura = new byte[512];
                _jugador.Cliente.GetStream().BeginRead(_jugador.Lectura, 0, _jugador.Lectura.Length, LecturaDelServidor, _jugador.Cliente);
            }
            catch (PaqueteNoEncontradoException)
            {
                MessageBox.Show("Mensaje desconocido");
            }
            catch (PaqueteLecturaException e)
            {
                MessageBox.Show(e.ToString());
                _graficos.CerrarVentanas();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.ToString());
                _graficos.CerrarVentanas();
            }
        }