From 1581cafff5f6866192314c3f8c17351398025ea3 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger Date: Thu, 2 Nov 2017 23:29:07 +0100 Subject: [PATCH] rmi initial version --- .../verteiltesysteme/rmi/RMIEchoClient.java | 25 +++++++++++++ .../rmi/RMIEchoInterface.java | 9 +++++ .../verteiltesysteme/rmi/RMIEchoServer.java | 36 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoClient.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoInterface.java create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoClient.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoClient.java new file mode 100644 index 0000000..12720fa --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoClient.java @@ -0,0 +1,25 @@ +package verteiltesysteme.rmi; + +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; + +public class RMIEchoClient { + + private RMIEchoClient() {} + + public static void main(String[] args) { + + String host = (args.length < 1) ? null : args[0]; + try { + Registry registry = LocateRegistry.getRegistry(host); + RMIEchoInterface stub = (RMIEchoInterface) registry.lookup("RMIEchoInterface"); + String response = stub.toLowerCase("hAlLo"); + System.out.println("response: " + response); + response = stub.toUpperCase("hAlLo"); + System.out.println("response: " + response); + } catch (Exception e) { + System.err.println("Client exception: " + e.toString()); + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoInterface.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoInterface.java new file mode 100644 index 0000000..ca48d00 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoInterface.java @@ -0,0 +1,9 @@ +package verteiltesysteme.rmi; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +public interface RMIEchoInterface extends Remote { + public String toLowerCase(String input) throws RemoteException; + public String toUpperCase(String input) throws RemoteException; +} \ No newline at end of file diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java new file mode 100644 index 0000000..51ac5f4 --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java @@ -0,0 +1,36 @@ +package verteiltesysteme.rmi; + +import java.rmi.*; +import java.rmi.server.*; +import java.rmi.registry.*; + +public class RMIEchoServer implements RMIEchoInterface { + public RMIEchoServer() {} + + public static void main(String args[]) { + + try { + RMIEchoServer obj = new RMIEchoServer(); + RMIEchoInterface stub = (RMIEchoInterface) UnicastRemoteObject.exportObject(obj, 0); + + // Bind the remote object's stub in the registry + Registry registry = LocateRegistry.getRegistry(); + registry.bind("RMIEchoInterface", stub); + + System.err.println("Server ready"); + } catch (Exception e) { + System.err.println("Server exception: " + e.toString()); + e.printStackTrace(); + } + } + + @Override + public String toLowerCase(String input) throws RemoteException { + return input.toLowerCase(); + } + + @Override + public String toUpperCase(String input) throws RemoteException { + return input.toUpperCase(); + } +} \ No newline at end of file