Partage
  • Partager sur Facebook
  • Partager sur Twitter

[RMI] faire interagir le client et le serveur sur 2 machines

    4 mai 2012 à 13:13:17

    Salut

    Voila je voudrai faire interagir une application RMI toute simple sur deux machines différentes (le serveur dans une machine et le client dans une autre machine )

    L'application en question se base sur l'invocation de la part du client d'une methode qui additionne deux entiers cette méthode se trouve sur le serveur :)

    Pour info l'application marche bien en local (le client et le serveur dans une seule machine )

    Voici les fichiers qui se trouvent coté serveur :

    AddInterface.java

    import java.rmi.*;
    
    public interface AddInterface extends Remote{
    	
    	public int add(int a,int b) throws RemoteException;
    
    }
    


    AddImpl.java

    import java.rmi.*;
    import java.rmi.server.*;
    
    public class AddImpl extends UnicastRemoteObject implements AddInterface{
    	
    	public AddImpl() throws RemoteException {}
    
    	public int add(int a, int b) throws RemoteException {
    		
    		return a+b;
    	}
    }
    


    AddServer.java

    import java.rmi.*;
    import java.net.*;
    
    public class AddServer {
    	public static void main(String[] argv) {
    		
    		try {
    		
    			Naming.rebind("Additionneur", new AddImpl());
    
    			System.out.println("Serveur attend sur = rmi://"
    				+ InetAddress.getLocalHost().getHostAddress()
    				+ "/Additionneur");
    
    			System.out.println("Equivalent a = rmi://"
    				+ InetAddress.getLocalHost().getHostName()
    				+ "/Additionneur");
    
    		} catch (Exception e) {
    			System.out.println("Erreur serveur:" + e);
    		}
    	}
    }
    


    Voici les fichiers qui se trouvent coté client :

    AddInterface.java

    import java.rmi.*;
    
    public interface AddInterface extends Remote{
    	
    	public int add(int a,int b) throws RemoteException;
    
    }
    


    AddClient.java

    import java.rmi.*;
    import java.util.Scanner;
    
    public class AddClient {
    
    	public static void main(String[] args) {
    		try {
    			AddInterface addition = (AddInterface) Naming
    					.lookup("rmi://localhost/Additionneur");
    			Scanner NomduScanner = new Scanner(System.in);
    			System.out.print("Donner la valeur1: ");
    			int entier1 = NomduScanner.nextInt();
    			System.out.print("Donner la valeur2: ");
    			int entier2 = NomduScanner.nextInt();
    			System.out.print("La somme est = ");
    			System.out.print(addition.add(entier1, entier2));
    		} catch (Exception e) {
    			System.out.println("Erreur client:" + e);
    		}
    	}
    }
    


    Est ce que l'application marchera sur deux machines diffrentes sans introduire d'addresse ip de la machine serveur dans le code source du serveur ?

    pour info a la fac dans notre salle de tp on a des machines sous ubuntu qui sont connectées entre eux pour savoir si deux machines communiquent bien je dois faire un ping c'est ça ?

    Cordialement, spider17 :)

    • Partager sur Facebook
    • Partager sur Twitter

    Android est SKYNET !

    [RMI] faire interagir le client et le serveur sur 2 machines

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown