import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class NumberAskImpl implements NumberAsk { public static void main(String[] args) { NumberAskImpl ClientImpl = new NumberAskImpl(); try { // Enregistrement de l'objet distant dans l'annuaire RMI UnicastRemoteObject.exportObject(ClientImpl); // Recherche de l'objet distant dans l'annuaire RMI pour récupérer // sa référence afin de pouvoir invoquer ses méthodes distantes NumberGen si = (NumberGen) Naming .lookup("rmi://localhost/ServerImpl"); // Invocation de la méthode distante si.needNumber(ClientImpl); // Le client peut terminer son exécution sans se soucier du résultat // de la méthode needNumber System.out .println("Je suis libre et je peux autre chose en attendant"); } catch (Exception e) { e.printStackTrace(); System.exit(2); } } // La définition de la méthode distante qui permet au serveur de transmettre // le résultat public void takeNumber(int i) throws RemoteException { System.out.println("D'apres le serveur mon numéro est: " + i); } }