RMI LAB EXERCISE
: Interface Definition
package Calculator;
import java.rr
Remote;
import java.rr
Remotetxception;
public interface Calcinterface extends Remote {
public int add{int x, int y) throws RemoteException;
public int sub(int x, int y}throws RemoteException;
public int mul{int x, int y}throws RemoteException;
public int div(int x, nt y)throws RemoteException;
)
Interface Implementation
package Calculator;
import java.rmi.RemoteException;
import java.rmi-server UnicastRemoteObject;
public class CalcRmi extends UnicastRemoteObject implements Calcinterface {
public CaleRmil) throws RemoteException { }
@Override
public int add{int x, int y) throws RemoteException {
return(xty};}
@Override
public int subint x, int y) throws Remote€xception {
return(scy); }
@override
public int mullint x, int y) throws RemoteException {
returntxty); }
@Overridepublic int div(int x, int y) throws RemoteException {
return(x/y); })
Client Code
package Calculator;
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry Regist
import java.util Scanner;
public class CaleClient {
public static void main(String{] args) {
int num4,num2,sum,sub,mul;
double div;
Scanner input =new Scanner(System.in);
System out printin("Please Enter the following options only\n");
Syster.out printin("Enter + for Addition\n"
System.out printin("Enter - for Subtraction\n");
System.out.printin( "Enter / for divsion\n
System.out printin("Enter * for Multiplication\n");
System.out.printin("Enter q for Exit");
wy
/*Caleinterface ¢ =(Calcinterface)Naming.lookup("/localhost/CalCi"}; the object returned
by lookup() depending on the naming system and data associated with it so we typecast
it
{* basic java code for menu driven program*/
Registry
locateRegistry.getRegistry("
calhost");
Caleinterface c =(CalcInterface)r-lookup("CalClI");
char choice;
Syster.out printin("Enter Your Option");choice =input.next().charAt(0};
System.out.printin("Enter the first number");
numi=input.nextint();
System.out.printin("Enter the second number");
fnum2=input.nextint();
switch(choice) — {
case":
sum=c.add(num1, num2};
Syster.out printin("Sum of “+numi+" and "+num2+"is="+sum};
catch (Exception e) { System.err.printin{"Exception"+e#"Thrown"); } } }
Step-4: Server Side Code
package Calculator;
import java.rmi.registry-LocateRegistry;
import java.rr
segistry.Registry;
public class CaleServer {
public static void main(String] args)
{
ty
Registry r =LocateRegistry.createRegistry(1099);
rrebind\"CalCli", new CalcRmi(); // binding the implementation class in CaleRmi to calel
System out printin"Server Ready.
d
catch{Exception e) {
System.out.printin("Server not connected"+e]; } }