RMI-初探

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);
	}

}



你可能感兴趣的:(Java,RMI,java)