Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Assignment No.

4
1)Create the following programs using RMI
a. Calculator application
calc.java

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface calc extends Remote


{
public double add(double a,double b) throws RemoteException;
public double sub(double a,double b) throws RemoteException;
public double mul(double a,double b) throws RemoteException;
public double div(double a,double b) throws RemoteException;
}

Calc2.java

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Calc2 extends UnicastRemoteObject implements calc


{

protected Calc2() throws RemoteException


{

}
public double add(double a, double b) throws RemoteException { return a+b; }
public double sub(double a, double b) throws RemoteException { return a-b; }
public double mul(double a, double b) throws RemoteException { return a*b; }
public double div(double a, double b) throws RemoteException { return a/b; }
}

calcserver.java

import java.rmi.Naming;
import java.rmi.Remote;
import java.rmi.registry.Registry;

public class calcserver {


calcserver() { try
{
Registry r=java.rmi.registry.LocateRegistry.createRegistry(1199);
r.rebind("cal", new Calc2()); System.out.println("Server s running...");
}catch(Exception e)
{
System.out.print(e);
}}
public static void main(String args[])
{
new calcserver();
}
}

calclient.java

import java.rmi.Naming; import java.util.Scanner; public class calclient


{
public static void main(String args[])
{ try{
calc c=(calc)Naming.lookup("//localhost:1199/calc");
System.out.println("Connected to server...");
Scanner sc=new Scanner(System.in);
System.out.println("Enter value of a:");
int a=sc.nextInt();
System.out.println("Enter value of b:");
int b=sc.nextInt();
System.out.println("Addition: "+c.add(a, b));
System.out.println("Substration: "+c.sub(a, b));
System.out.println("Multiplication: "+c.mul(a, b));
System.out.println("Division: "+c.div(a, b));
}catch(Exception e)
{
System.out.println(e);
}
}
}

Output:
b. Retrieve Date and Time from Server

dateinterface.java

import java.rmi.*;
public interface dateinterface extends Remote
{
public String retriev()throws RemoteException;
}

Date2.java

import java.rmi.*; import java.rmi.server.*; import java.text.*; import java.util.Date;


public class date2 extends UnicastRemoteObject implements dateinterface
{
public date2() throws RemoteException
{}
public String retriev()
{
DateFormat dateFormat2 = new SimpleDateFormat("dd/MM/yyyy");
String dateString2 = dateFormat2.format(new Date()).toString();
DateFormat dateFormat = new SimpleDateFormat("hh.mm aa"); String dateString =
dateFormat.format(new Date()).toString();
return "Current date: "+dateString2+"\nCurrent time in AM/PM: "+dateString+"";
}
}

Client.java

import java.rmi.Naming; import java.util.Scanner; public class client


{
public static void main(String args[]) throws Exception
{
dateinterface m=(dateinterface)Naming.lookup("//localhost:1179/");
System.out.println(m.retriev());
}
}

Server.java

import java.rmi.*;
import java.rmi.registry.LocateRegistry; public class server {
public static void main(String args[]) throws Exception
{
server ms=new server(); LocateRegistry.createRegistry(1179);
Naming.rebind("rmi://localhost:1179/",new date2());
System.out.println("Server is Running...");
}
}
OUTPUT :
c. Equation Solver / Temperature Conversion / Measurements Conversion
IMeasure.java

import java.rmi.*;
public interface Imeasure extends Remote
{
public String convertCM(double cm)throws RemoteException;
}

measure2.java

import java.rmi.*; import java.rmi.server.*;


public class measure2 extends UnicastRemoteObject implements Imeasure
{
final double INCH = 0.394;
final double METER = 0.01; final double KILOMETER = 0.00001;
public measure2() throws RemoteException
{

}
public String convertCM(double cm)
{
double inch = cm * INCH; double m = cm * METER; double km = cm *
KILOMETER;
return “Inches :: “+inch+” ,Meter:: “+m+” and kilometer::”+km+””;
}

Client.java

import java.rmi.Naming; import java.util.Scanner;


public class MeasureClient
{
public static void main(String args[]) throws Exception
{
Imeasure m=(Imeasure)Naming.lookup(“//localhost:1179/mea”);
Scanner in = new Scanner(System.in); System.out.print(“Enter length in centimeters :
“);
double cm = in.nextDouble();
System.out.println(“After Centimeters Converts into:”+m.convertCM(cm)); }
}

Server.java

import java.rmi.*;
import java.rmi.registry.LocateRegistry; public class Server
{
public static void main(String args[]) throws Exception {
Server ms=new Server();
LocateRegistry.createRegistry(1179);
Naming.rebind(“rmi://localhost:1179/mea”,new measure2());
System.out.println(“Server is Running…”);
}
}

OUTPUT :

You might also like