public static org.jdom2.Document recevoirCommande(String nom) throws IOException {
        org.jdom2.Document res = null;
        try {
            gbu = (IGestionBoutiques) Naming.lookup("rmi://localhost/GestionBoutiques");
        } catch (NotBoundException ex) {
            Logger.getLogger(ConnexionThreadClientCommandes.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MalformedURLException ex) {
            Logger.getLogger(ConnexionThreadClientCommandes.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RemoteException ex) {
            Logger.getLogger(ConnexionThreadClientCommandes.class.getName()).log(Level.SEVERE, null, ex);
        }

        String port = gbu.getPortCommandesBoutique(nom);
        String ip = gbu.getPortIPBoutique(nom);

        Element racine = new Element("connexion");
        org.jdom2.Document doc = new Document(racine);

        racine.setAttribute("action", "recevoirCommande");

        //envoie XML
        XMLOutputter sortie = new XMLOutputter(Format.getCompactFormat());
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        sortie.output(doc, baos);

        byte[] tampon = baos.toByteArray();
        DatagramSocket socket = null;

        // Creation du socket
        try {
            socket = new DatagramSocket();
        } catch (Exception e) {
            System.err.println("Erreur lors de la creation du socket");
            System.exit(-1);
        }

        // Creation du message
        DatagramPacket msg = null;
        try {
            InetAddress adresse = InetAddress.getByName(ip);
            msg = new DatagramPacket(tampon, tampon.length, adresse, Integer.valueOf(port));

        } catch (Exception e) {
            System.err.println("Erreur lors de la creation du message");
            System.exit(-1);
        }

        // Envoi du message
        try {
            socket.send(msg);
        } catch (Exception e) {
            System.err.println("Erreur lors de l'envoi du message");
            System.exit(-1);
        }
        
        byte[] tampon2=new byte[4000];
        DatagramPacket msg2 = new DatagramPacket(tampon2, tampon2.length);

        //reception de la réponse
        socket.receive(msg2);
        String texte = new String(msg2.getData(), 0, msg2.getLength());
        System.out.println(texte);
        ByteArrayInputStream bais = new ByteArrayInputStream(texte.getBytes());
        SAXBuilder sxb = new SAXBuilder();
        try {
            res = sxb.build(bais);
        } catch (JDOMException ex) {
            Logger.getLogger(ConnexionThreadClientCommandes.class.getName()).log(Level.SEVERE, null, ex);
        }

        // Fermeture du socket
        try {
            socket.close();
        } catch (Exception e) {
            System.err.println("Erreur lors de la fermeture du socket");
            System.exit(-1);
        }
        return res;
    }