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
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.
Android est SKYNET !