package com.jb.gosling;
import java.rmi.AlreadyBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class Server {
public static void main(String args[]) throws RemoteException, AlreadyBoundException{
int port = 9527;
String name = "BusinessDemo";
Business business= new BusinessImpl();
UnicastRemoteObject.exportObject(business, port);
Registry registry = LocateRegistry.createRegistry(1099);
registry.bind(name, business);
}
}
interface Business extends Remote{
public String echo(String message) throws RemoteException;
}
class BusinessImpl implements Business{
@Override
public String echo(String message) throws RemoteException {
if("quit".equalsIgnoreCase(message.toString())){
System.out.println("Server will shutdown");
System.exit(0);
}
System.out.println("Message from client :"+message);
return "Server response"+message;
}
}
package com.jb.gosling;
import java.rmi.AccessException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
public static void main(String args[]) throws AccessException, RemoteException, NotBoundException{
Registry registry = LocateRegistry.getRegistry("localhost");
String name = "BusinessDemo";
Business business = (Business)registry.lookup(name);
String msg = business.echo("quit2");
System.out.println(msg);
}
}