import java.rmi.*;public interface RMIServer extends Remote{ // Methode des Servers, die remote // ausgeführt werden kann void setString (String str) throws RemoteException;}
import java.rmi.*;import java.net.*;import java.rmi.server.*;public class RMIServerImpl extends UnicastRemoteObjectimplements RMIServer{ public RMIServerImpl () throws RemoteException { try { // Registrieren des Servers bei RMIRegistry Naming.rebind ("rmi:///Server", this); System.out.println ("Server gebunden"); } catch (MalformedURLException e) { // Wenn die URL falsch angegeben wurde ... System.out.println ("URL ungültig:\n" + e.getMessage ()); } } // Methode, die remote ausgeführt werden kann public void setString (String str) { // Ausgabe des vom Client gesendeten Strings System.out.println (str); } public static void main (String[] args) { try { // Instanziieren des Remote-Objektes RMIServerImpl server = new RMIServerImpl(); } catch (RemoteException e) { // Wenn Remote-Objekt nicht erzeugt werden kann ... System.out.println ("Fehler beim Instanziieren des " + "Remote-Objektes:\n" + e.getMessage()); } }}
import java.rmi.*;import java.net.*;public class RMIClient{ public static void main (String[] args) { try { // Suchen des Servers in RMIRegistry RMIServer server = (RMIServer)Naming.lookup ("rmi://localhost/Server"); // Ausführen einer Methode im Server server.setString ("Hallo Server"); } catch (NotBoundException e) { // Wenn der Server nicht registriert ist ... System.out.println ("Server ist nicht gebunden:\n" + e.getMessage ()); } catch (MalformedURLException e) { // Wenn die URL falsch angegeben wurde ... System.out.println ("URL ungültig:\n" + e.getMessage ()); } catch (RemoteException e) { // Wenn während der Kommunikation ein Fehler auftritt System.out.println ("Fehler während Kommunikation:\n" + e.getMessage ()); } }}