@Override
    public void run() {

        DatagramPacket paquete;
        byte recibidos[] = new byte[1024];
        String IPRemota;

        try {
            boolean finalizar = false;
            while (!finalizar) {

                paquete = new DatagramPacket(recibidos, recibidos.length);

                socket.receive(paquete);

                //Información que podemos obtener de la cabecera del paquete
                IPRemota = paquete.getAddress().getHostName(); 
                
                //server.setHost(IPRemota);
                
                OrdenCliente orden = deserializar(paquete);
                
                server.realizarOrden(IPRemota,orden);
            }

            socket.close();

        } catch (SocketException ex) {
            System.out.println("Error al asignar el socket");
        } catch (IOException ex) {
            System.out.println("Error en la recepción del paquete");
        }
    }