package rmi;
import java.rmi.Remote;
/**
* 服务器端对外提供的接口
* @author icer
* @date:2013-12-23
*
*/
public interface Business extends Remote {
/**
* 显示客户端的信息,并返回
* @param message
* @return
* @throws Exception
*/
public String echo(String message) throws Exception;
}
package rmi;
/**
* 服务器端实现此接口的类
* @author icer
* @date:2013-12-23
*
*/
public class BusinessImpl implements Business {
@Override
public String echo(String message) throws Exception {
if ("quit".equalsIgnoreCase(message.trim())) {
System.out.println("Server will be shutdown!");
System.exit(0);
}
System.out.println("Message from client: " + message);
return "Server response : " + message;
}
}
package rmi;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
/**
* RMI 服务器端
* @author icer
* @date:2013-12-23
*
*/
public class Server {
public static void main(String[] args) throws RemoteException {
int port = 9666;
String serverName = "BusinessDemo";
Business business = new BusinessImpl();
UnicastRemoteObject.exportObject(business, port);
Registry registry = LocateRegistry.createRegistry(9999);
registry.rebind(serverName, business);
}
}
package rmi;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
public static void main(String[] args) throws Exception {
Registry registry = LocateRegistry.getRegistry("localhost", 9999);
String name = "BusinessDemo";
Business business = (Business) registry.lookup(name);
String message = "test";
business.echo(message);
}
}