1. IMPLEMENTATION OR RMI ARITHMETIC OPERATIONS
/* cal.java*/
import java.rmi.*;
public interface cal 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,int y) throws RemoteException;
}
/* calimp.java*/
import java.rmi.*;
import java.rmi.server.*;
import java.io.*;
public class calimp extends
UnicastRemoteObject implements cal
{
public calimp() throws RemoteException
{
super();
}
public int add(int x,int y) throws RemoteException
{
return x+y;
}
public int sub(int x,int y) throws RemoteException
{
return x-y;
}
public int mul(int x,int y) throws RemoteException
{
return x*y;
}
public int div(int x,int y) throws RemoteException
{
return x/y;
}
}
/* calserver.java*/
import java.rmi.*;
import java.rmi.server.*;
public class calserver
2. {
public static void main(String args[])
{
try
{
calimp c=new calimp();
System.out.println("Binding Server implementation to registry ..");
Naming.rebind("WIN",c);
System.out.println("Registered");
System.out.println("Waiting for client to connect ...");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
/* calclient.java*/
import java.rmi.*;
import java.rmi.server.*;
import java.io.*;
public class calclient
{
public static void main(String args[]) throws Exception
{
int a,b;
DataInputStream d =new DataInputStream(System.in);
boolean f=false;
String url="rmi://localhost/";
try
{
cal c = (cal) Naming.lookup(url+"WIN");
do
{
System.out.println("nCALCULATOR");
System.out.println(" 1.Add");
System.out.println(" 2.Subtract");
System.out.println(" 3.Multiply");
System.out.println(" 4.Divide");
System.out.println(" 5.Exit");
System.out.print("nEnter your choice : ");
switch(Integer.parseInt(d.readLine()))
{
case 1: