Professional Documents
Culture Documents
Experiment No.05
Semester
B.E. Semester VIII Computer Engineering
Subject
Distributed Computing
Subject Professor
Prof. Amit Nerurkar
In-charge
Assisting Teachers Prof. Amit Nerurkar
Laboratory
Lab No.: M313B (computer lab)
Student Name
Pritish J Kamath
Roll Number
11-217
Grade and Subject
Teachers Signature
Experimen
t Number
Experimen
t Title
Resources
/
Apparatus
Required
05
Objectives
(Skill Set /
Knowledge
Tested /
Imparted)
Theory of
Operation
Implementing RMI.
Hardware:
IBM PC Compatible Computer
System
Software:
Java
CalculatorServer.java
import java.rmi.*;
import java.rmi.registry.*;
public class CalculatorServer{
public static void main(String args[]){
try{
CalculatorInterface stub=new CalculatorRemote();
Naming.rebind("rmi://localhost:5000/calculator",stub);
} catch(Exception e) {
System.out.println(e);
}
}
}
CalculatorClient.java
import java.rmi.*;
import java.util.Scanner;
public class CalculatorClient{
public static void main(String args[]){
try{
CalculatorInterface
stub=(CalculatorInterface)Naming.lookup("rmi://localhost:5000/calculat
or");
//System.out.println(stub.add(34,4));
Scanner sc = new Scanner(System.in);
int ch = 0;
do {
printMenu();
ch = sc.nextInt();
sc.nextLine();
switch(ch) {
case 0: break;
case 1:
System.out.print("enter two
numbers: ");
System.out.println("sum = " +
stub.add(sc.nextDouble(), sc.nextDouble()));
sc.nextLine();
break;
case 2:
System.out.print("enter two
numbers: ");
System.out.println("sub = " +
stub.sub(sc.nextDouble(), sc.nextDouble()));
sc.nextLine();
break;
case 3:
System.out.print("enter two
numbers: ");
System.out.println("mul = " +
stub.mul(sc.nextDouble(), sc.nextDouble()));
sc.nextLine();
break;
case 4:
System.out.print("enter two
numbers: ");
System.out.println("div = " +
stub.div(sc.nextDouble(), sc.nextDouble()));
sc.nextLine();
break;
default: System.out.println("invalid input");
break;
}
} while (ch!=0);
} catch(Exception e) {}
}
private static void printMenu() {
System.out.println("Enter
choice:\n1:Add\n2:Subtract\n3:Multiply\n4:Divide\n0:Exit\n");
}
}
CalculatorRemote.java
import java.rmi.*;
import java.rmi.server.*;
public class CalculatorRemote extends UnicastRemoteObject
implements CalculatorInterface {
CalculatorRemote()throws RemoteException {
super();
}
public double add(double x,double y) {
return x+y;
}
public double sub(double x,double y) {
return x-y;
}
public double mul(double x,double y) {
return x*y;
}
public double div(double x,double y) {
return x/y;
}
}
CalculatorInterface.java
import java.rmi.*;
public interface CalculatorInterface extends Remote{
public double add(double x, double y)throws RemoteException;
public double sub(double x, double y)throws RemoteException;
public double mul(double x, double y)throws RemoteException;
public double div(double x, double y)throws RemoteException;
}
Output
Conclusion