Tuesday, November 3, 2015

Filled Under:

Java program to implement remote method invocation (RMI)

Share
AddClient.java
import java.rmi.*;
import java.lang.*;
import java.io.*;
public class AddClient
{
public static void main(String args[])
{
try
{
String g;
int i;
String addServerURL="rmi://LocalHost/AddServer";
AddServerIntf addServerintf=(AddServerIntf)Naming.lookup(addServerURL);
System.out.println("enter a number");
BufferedReader s1=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.parseInt(s1.readLine());
int d=addServerintf.fact(a);
System.out.println("factorial is:"+d);
int fib[]=new int[50];
fib=addServerintf.fib(a);
System.out.println("fibonacci series is :");
for(i=2;fib[i]!=-1;i++)
System.out.println(fib[i]);
g=addServerintf.prime(a);
System.out.println(g);
}
catch(Exception e){}
}
}

AddServer.java
import java.rmi.*;
import java.net.*;
public class AddServer
{
public static void main(String arg[])
{
try
{
System.out.println("Server Started");
AddServerImpl addServerimpl=new AddServerImpl();
Naming.rebind("AddServer",addServerimpl);
}
catch(Exception e)
{}
}
}

AddServerImpl.java
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf
{
public AddServerImpl()throws RemoteException{}
public int fact(int d)throws RemoteException
{
int f=1;
for(int i=1;i<=d;i++)
f=f*i;
return f;
}
public int[] fib(int d)throws RemoteException
{
int ret[]=new int[50];
int x=0;
int a=0,b=1,c=0;
for(int i=0;i<=d+1;i++)
{
ret[x++]=a;
a=b;
b=c;
c=a+b;
}
ret[x]=-1;
return ret;
}
public String prime(int d)throws RemoteException
{
String s;
int f=0,j=1;
for(j=1;j<=d;j++)
{
if((d%j)==0)
f=f+1;
}
if(f==2)
{
s="number is prime";
return s;
}
else
{
s="number is not prime";
return s;
}
}
}

AddServerIntf.java
import java.rmi.*;
public interface AddServerIntf extends Remote
{
int fact(int d)throws RemoteException;
int[] fib(int d)throws RemoteException;
public String prime(int d)throws RemoteException;
}

0 comments:

Post a Comment