Ejercicio De RMI

Creacion de la Interfaz Remota


import java.rmi.*;
import java.io.Serializable;
 
public interface Listener extends Remote{
    public String listen(String word) throws RemoteException;
}

Creacion de la Clase Remota que implemeta la interface remota (Listener)


import java.io.Serializable;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
 
public class RemoteListener extends UnicastRemoteObject implements Listener{
 
    RemoteListener()throws RemoteException{
        super();
    }
 
    public String listen (String word){
 
        System.out.println("Escuchando Mensaje:"+word);
        return word;
    }
}

Creacion de la Clase del Servidor


import java.rmi.*;
 
public class Server {
 
    public Server(){
 
        try 
        {
        // Se indica a rmiregistry dónde están las clases.
        // Cambiar el paht al sitio en el que esté. Es importante
        // mantener la barra al final.
        System.setProperty(
            "java.rmi.server.codebase",
            "file:/c:/Serv/");
 
            // Se publica el objeto remoto
            Listener Eco = new RemoteListener();
            //Naming.rebind ("//192.168.1.73/RemoteListener", Eco);
            Naming.rebind ("//localhost/RemoteListener", Eco);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new Server();
    }
 
}

Creacion de la Clase de el Cliente


import java.rmi.*;
import java.io.*;
 
public class ClientSays {
 
     public ClientSays() 
    {
 
        try
        {
        // Lugar en el que está el objeto remoto.
        // Debe reemplazarse "localhost" por el nombre o ip donde
        // esté corriendo "rmiregistry".
        // Naming.lookup() obtiene el objeto remoto
            Listener Eco = 
            //    (Listener)Naming.lookup ("//192.168.0.69/RemoteListener");
             (Listener)Naming.lookup ("//localhost/RemoteListener");
 
            InputStreamReader isr= new InputStreamReader(System.in);
            BufferedReader flujoE=new BufferedReader (isr);
 
            String word;
            String exit;
            //word = flujoE.readLine();
            // Se realiza la suma remota.
            while((word=flujoE.readLine())!=null){
 
                System.out.print ("Enviando Mensaje: ");
                System.out.println ("Eco>"+Eco.listen(word));
 
                if(word.equalsIgnoreCase("exit"))
                    break;
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new ClientSays();
    }
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License