@Override
    public void run() {
        DatagramPacket paquete;
        byte recibidos[] = new byte[50000];

        try {
            paquete = new DatagramPacket(recibidos, recibidos.length);
            socket.receive(paquete);

            ByteArrayInputStream bytesDelPaquete = new ByteArrayInputStream(paquete.getData()); // bytes es el byte[]

            ObjectInputStream is = new ObjectInputStream(bytesDelPaquete);

            FileDatos objetoAuxiliar = (FileDatos) is.readObject();

            orden = objetoAuxiliar.getOrden();
            is.close();

            if (orden.equals("path")) {
                File[] file = deserializar2(objetoAuxiliar);
                cliente.pedirPath(file);
            } else {
                deserializar(objetoAuxiliar);
            }

            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");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Escuchar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }