class Beta extends NetworkPeer implements BetaServices, java.rmi.Remote { AlphaServices other; public boolean even(int n) throws java.rmi.RemoteException { System.out.println("You are asking if " + n + " is even..."); if (n == 0) return true; else return other.odd(n-1); } public void startAsLocalServer() { } public void startAsClientOf(java.rmi.Remote peer) throws java.rmi.RemoteException { ((AlphaServices)peer).register(this); } public void register(AlphaServices alpha) throws java.rmi.RemoteException { this.other = alpha; } public static void main(String[] args) throws /*Remote*/Exception { String portNumber = args[0], ownName = args[1]; Beta server = new Beta(); server.startAsNetworkServer(ownName, Integer.parseInt(portNumber)); System.out.println("Press a key if the other server is up and running..."); new java.io.BufferedReader(new java.io.InputStreamReader(System.in)).readLine(); String serverHostName = args[2], serverPortNumber = args[3], serverName = args[4]; java.rmi.Remote peer = server.locatePeer(serverHostName, Integer.parseInt(serverPortNumber), serverName); server.startAsClientOf(peer); System.out.println("Is 5 even? The answer is: " + server.even(5)); System.out.println("Is 5 odd? The answer is: " + ((AlphaServices)peer).odd(5)); System.out.println("Press a key when you want this to end ..."); new java.io.BufferedReader(new java.io.InputStreamReader(System.in)).readLine(); } }