RPC and RMI operation in java

RPC and RMI operation in java


Client
import java.io.*;
import java.net.*;
import java.util.*;
class Clientrpc
{
            public static void main(String args[])
            {
            try
            {
                        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
                        Socket clsct=new Socket("127.0.0.1",139);
                        DataInputStream din=new DataInputStream(clsct.getInputStream());
                        DataOutputStream dout=new DataOutputStream(clsct.getOutputStream());

                        System.out.println("Enter String");
                        String str=in.readLine();
                        dout.writeBytes(str+'\n');
                        clsct.close();
            }
            catch (Exception e)
            {
            System.out.println(e);
            }
            }
}
Server
import java.io.*;
import java.net.*;
import java.util.*;
class Serverrpc
{
            public static void main(String args[])
            {
            try
            {
                        ServerSocket obj=new ServerSocket(139);
                        while(true)
                        {
                                    Socket obj1=obj.accept();
                                    DataInputStream din=new DataInputStream(obj1.getInputStream());
                                    DataOutputStream dout=new DataOutputStream(obj1.getOutputStream());
                                    String str=din.readLine();
                                    Process p=Runtime.getRuntime().exec(str);
                        }
            }
            catch(Exception e)
            {
                        System.out.println(e);
            }
            }
}
OUTPUT
Server
Y:\networks\remote>java Serverrpc
Client
Y:\networks\remote>java Clientrpc
Enter String
calc












Rmi
Client
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import java.rmi.*;
import java.net.*;

class clirmi
  {
 
     public static void main(String args[])
{
         try
           {
              calc o= new calcim();
            Naming.lookup("rmi://165.165.1.1/calculatoroperation");
               System.out.println("Addition:"+o.add(4,5));
               System.out.println("Subtraction:"+o.sub(7,5));
            System.out.println("Multiplication:"+o.mul(4,5));
             System.out.println("Division:"+o.div(10,5));
              }
   catch (Exception e)
         {
            System.out.println(e);
        }
       
    }

   }
Server
Interface
public interface calc extends java.rmi.Remote
  {
    public long  add(long a,long b) throws java.rmi.RemoteException;
    public long  sub(long a,long b) throws java.rmi.RemoteException;
    public long  mul(long a,long b) throws java.rmi.RemoteException;
    public long  div(long a,long b) throws java.rmi.RemoteException;
  }
Implementation of interface
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
class calcim extends java.rmi.server.UnicastRemoteObject implements calc
  {
     public calcim() throws  java.rmi.RemoteException
        {
           super();
         }
     public  long add( long a,long b) throws  java.rmi.RemoteException
       {
           return (a+b);
        }
       public long  sub( long a,long b) throws  java.rmi.RemoteException
       {
           return (a-b);
        }
 public  long mul( long a,long b) throws  java.rmi.RemoteException
       {
           return (a*b);
        }
 public long div( long a,long b) throws  java.rmi.RemoteException
       {
           return (a/b);
        }

 }
Main file
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import java.rmi.*;
import java.net.*;

public class serrmi
  {
      serrmi()
        {
           try{
                  calc ob=new calcim();
                 Naming.rebind("rmi://165.165.1.13/calculatoroperation",ob);
               }
           catch(Exception e)
               {
                }
        }
       public static void main(String args[])
          {
            new serrmi();
          }
   } 
Output
D:\Java\jdk1.5.0_05\bin>javac serrmi.java

D:\Java\jdk1.5.0_05\bin>javac calc.java

D:\Java\jdk1.5.0_05\bin>javac calcim.java

D:\Java\jdk1.5.0_05\bin>rmic -verbose serrmi
[loaded .\serrmi.class in 15 ms]
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/lang/Object.class) in 15
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/rmi/Remote.class) in 0 ms
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/lang/Exception.class) in
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/lang/Throwable.class) in
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/io/Serializable.class) in
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/rmi/RemoteException.class
ms]
[loaded D:\Java\jdk1.5.0_05\jre\lib\rt.jar(java/io/IOException.class) in
error: Class serrmi does not implement an interface that extends java.rmi
; only remote objects need stubs and skeletons.
1 error
[done in 266 ms]
D:\Java\jdk1.5.0_05\bin>start rmiregistry

D:\Java\jdk1.5.0_05\bin>java serrmi
Client
D:\Java\jdk1.5.0_05\bin>javac clirmi.java

D:\Java\jdk1.5.0_05\bin>java clirmi
Addition:9
Subtraction:2
Multiplication:20
Division:2

No comments:

Post a Comment

Creating Objects

Creating Objects                  Creating objects means to allocate memory space for all the instance variables of the objects. S...