Вы находитесь на странице: 1из 18

Example program to find the sum of 2 numbers using rmi

inter.java

import java.rmi.*;

public interface inter extends Remote

public void getdata(int m,int n) throws RemoteException;

int adddata() throws RemoteException;

server.java

import java.rmi.*;

import java.rmi.server.*;

public class server extends UnicastRemoteObject


implements inter

int x,y;

public server() throws RemoteException

public int adddata() throws RemoteException


{

return x+y;

public void getdata(int m, int n) throws RemoteException

x=m; y=n;

public static void main(String arg[])

try

server s = new server();

Naming.rebind("Addserver",s);

catch(Exception e)

System.out.println("can not bund the name " + e);

}
 

client.java

import java.rmi.*;

public class client

public static void main(String arg[ ])

try

int a = Integer.parseInt(arg[1]);

int b = Integer.parseInt(arg[2]);

int result;

inter i = (inter) Naming.lookup("rmi://" + arg[0] +

"/Addserver");

System.out.println("client");

i.getdata(a,b);

result = i.adddata();

System.out.println(result);

catch(Exception e)
{

System.out.println("can not connect with server " + e);

Important points

1. import java.rmi.* ; all methods in this package throws

RemoteException that must be caught.

2. Remote in interface indicates that this is remote


interface,

the methods can be used by object in the remote


machine.

3. Server extends UnicastRemoteObject implements

remote interface

Also import java.rmi.server.* for server program

4. Naming.rebind("servername", serverobject);

Others methods are bind , rebind, unbind

5. In client, Naming.lookup("rmi://ipaddress/servername")
method is used to identify the server and returns
remote interface.

6. Use inter.method to call the method in client.

 
Steps to exucute RMI

1. Write programs for interface, server and client and

compile them.

javac inter.java

javac server.java

javac client.java or javac *.java

2. Then use rmi compiler to create stub and skeleton class.

rmic server

3. Copy inter, server, skeleton to server machine and

inter, client and stub to client program

4. Then start rmi registry by

start rmiregistry

5. Run the server program in server machine by

java server

6. Execute the client program by

java client ipaddress arg1 arg2

java client 200.200.1.120 5 8

import java.rmi.*;

public class client

{
public static void main(String arg[])

try

int a = Integer.parseInt(arg[1]);

int b = Integer.parseInt(arg[2]);

int result;

inter i = (inter) Naming.lookup("rmi://" + arg[0] +


"/Addserver");

System.out.println("client");

i.getdata(a,b);

result = i.adddata();

System.out.println(result);

catch(Exception e)

System.out.println("error " + e);

}
 

/* Example for deserialization

ObjectInputStream(FileInputStream f)

*/

import java.io.*;

class myclass implements Serializable

String s;

int i;

int j;

myclass(String s1,int m,int n)

s=s1; i=m;j=n;

public String toString()

return (s + i + j);

class deser
{

public static void main(String arg[]) throws Exception

myclass ob2 ;

FileInputStream f = new FileInputStream("obj");

ObjectInputStream o = new ObjectInputStream(f);

ob2 = (myclass) o.readObject();

System.out.println(ob2.s + ob2.i);

o.close();

System.out.println("Obeject2 " + ob2);

import java.rmi.*;

public interface inter extends Remote

public void getdata(int m,int n) throws RemoteException;

int adddata() throws RemoteException;

 
/* Example for serialization

ObjectOutputStream(FileOutputStream f)

o.writeObject(ob)

*/

import java.io.*;

class myclass implements Serializable

String s;

int i;

int j;

myclass(String s1,int m,int n)

s=s1; i=m;j=n;

class ser

public static void main(String arg[]) throws IOException,


NotSerializableException

{
myclass ob = new myclass("Murali",4,5);

FileOutputStream f = new FileOutputStream("obj");

ObjectOutputStream o = new ObjectOutputStream(f);

o.writeObject(ob);

o.flush();

o.close();

System.out.println(ob);

import java.rmi.*;

import java.rmi.server.*;

public class server extends UnicastRemoteObject


implements inter

int x,y;

public server() throws RemoteException

public int adddata() throws RemoteException


{

return x+y;

public void getdata(int m, int n) throws RemoteException

x=m; y=n;

public static void main(String arg[])

try

server s = new server();

Naming.rebind("Addserver",s);

catch(Exception e)

System.out.println("Exception e");

}
 

import java.rmi.*;

import java.rmiregistry.*;

public class clientport

public void actionPerformed(ActionEvent e)

if(e.getSource() == submit)

try

rmiserver server = (rmiserver)


Naming.lookup("rmi//localhost/connect");

String name = getData();

catch(Exception e)

System.out.pritnln("Unable to connect");

}
}

import java.sql.*;

public class details

private Connection connect = null;

private Statement query =null;

private ResultSet result = null;

String dsn;

public details(String dsn)

this.dsn = "jdbc:odbc:" + dsn ;

try

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

connect = DriverManager.getConnection(dsn,"","");

query = connect.createStatement();

catch(Exception e)
{

e.printStackTrace();

System.out.println("Connection failed");

public void setData(String Table, String data)

try

// String sql = "Insert into " + table + (name)


values("'+data+'")";

String sql = "Insert into table(name) values('rrr')";

query.executeUpdate(sql);

catch(Exception e)

System.out.println("Query failed");

}
 

import java.rmi.*;

import java.rmi.server.*;

public class rmidatabase extends UnicastRemoteObject


implements rmiserver

private details det=null;

public rmidatabase(String name) throws RemoteException

super();

try

Naming.rebind(name,this);

catch(Exception e)

System.out.println("Unable to bind");

det = new details("student");

}
public String receiveData(String s)

return null;

public void sendData(String data)

System.out.println("Server sending data");

det.sendData("registration",data);

public static void main(String a[])

try

System.setSecurityManager(new RMISecurityManager());

rmidatabase connect = new rmidatabase("connect");

System.out.println("Server started");

catch(Exception e)

System.out.println("Error in server");
}

import java.rmi.*;

interface rmiserver extends Remote

public void sendData(String data) throws RemoteException ;

public String receiveData(String data) throws


RemoteException ;

Вам также может понравиться