import java.net.*; import java.lang.*; import java.rmi.*; import java.rmi.server.*; // Cette classe implante l'entite qui va creer l'agent, l'envoyer // sur le reseau et attendre son retour. // Notez que cette classe est aussi une implantation de l'interface "Hote" // public class Initiateur extends UnicastRemoteObject implements Hote { static private boolean attendre = true; public Initiateur() throws RemoteException { super(); } // La methode migre est un peu particuliere : elle ne // declenche pas le traitement de l'agent mais // lui demande d'afficher ses resultats // public void migre(Agent a) { a.afficheResultat(); attendre=false; } public static void main(String args[]) { if (System.getSecurityManager() == null) System.setSecurityManager(new mySecurity()); if (args.length < 3) { System.out.println("Au moins trois parametres : portRmiregistry produit hote {hote} ! "); System.exit(1); } try { // Creation de l'objet et publication sur le // reseau avec rmiregistry // Hote monInitiateur = new Initiateur(); myHostname machine = new myHostname(); String nom = "//" + machine.QualifiedHost() + ":" + args[0] + "/Initiateur"; .... System.out.println("Initiateur enregistre : " + nom); // Construction de la liste des hotes a // visiter (le site de l'initiateur est ajoute // en fin de liste de facon que l'agent revienne // chez l'initiateur en fin de traitement // String [] hotes = new String[20]; int j=0; for(int i=2;i