martes, 21 de mayo de 2019

MMORPG --> Modificaciones a Principal, ThreadServidor

Con el avance hasta ahora solo tenemos una vista estática, hace falta hacer unos cambios que permitan estar a la espera en cada momento de cualquier cosa que manden los usuarios, para ello creamos un método llamado runServer al igual que un método llamado log que recibirá un parámetro tipo varargs  no es espanten, después explico de que trata.

Por ahora solo modificaremos las clases Principal y ThreadServidor dejando el código de la siguiente manera.

Agregando el método log a la clase Principal.

    public void log(Object... msg){
        for( Object sg: msg){
            txtMostrar.append( sg.toString() );
            txtMostrar.append( "\t" );
        }
        txtMostrar.append("\n");
    }


Este método servirá para mostrar en la ventana del servidor los mensajes del thread o de cualquier otro lado que queramos mostrar solo con la linea Servidor.log( "mensaje",valorVariable,"mensaje");

Por otro lado tenemos el método runServer a la clase Principal, quedando de la siguiente manera.



    public void runServer(){
        ServerSocket serv1;
        ServerSocket serv2;
        try{
            serv1 = new ServerSocket( 5555 );
            serv2 = new ServerSocket( 4445 );
            log( "se espseran clientes" );
            while( isRunning ){
                Socket socket1;
                Socket socket2;
                try{
                    log( "Esperando usuarios");
                    socket1 = serv1.accept();
                    socket2 = serv2.accept();
                }catch(IOException e ){
                    log( "Error en while:",e.getMessage());
                    continue;
                }
                ThreadServidor usr = new ThreadServidor( socket1, socket2, this );
                usr.start();
            }
        } catch (IOException ex) {
            log( "Error en runServer" , ex.getMessage() );
        }
    }


De esta manera se abren los sockets en los puertos 5555 y 4445 en mi caso son los puertos que tengo habilitados, ( no entro en detalle con lo de puertos ya que redes todavía no es mi campo ).

En el lado de ThreadServidor reemplazamos los System.out.println por un servidor.log() por ejemplo en el construcotr de ThreadServidor

antes: System.out.println("Added customer waithing for login: " + sClient_1 + " " + sClient_2 );
despues: servidor.log("Added customer waithing for login: ",sClient_1,sClient_2 );



Sin mas por el momento es todo por hoy.

Te pido respondas estas preguntas en la sección de comentarios
¿Que tal te a parecido el blog hasta ahora?
¿Te ah servido la información ?
¿Esto es nuevo para ti?
¿Tienes algún tema que requieras ayuda?

Esto me ayudará a conocerte mas y saber de que temas hablar mas adelante.
Suscribete y nos leemos mas tarde.

No hay comentarios:

Publicar un comentario