// CustWork.java 定义Server端提供服务的接口 import java.rmi.Remote; import java.rmi.RemoteException; public interface CustWork extends Remote{ public String getSvrMsg() throws RemoteException; }
// CustWorkImpl.java 这是Server端的服务 import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.Calendar; import java.rmi.server.*; public class CustWorkImpl implements CustWork{ public CustWorkImpl() throws RemoteException{ UnicastRemoteObject.exportObject(this); } public String getSvrMsg() throws RemoteException{ String threadName = Thread.currentThread().getName(); String curTime = Calendar.getInstance().getTime().toString(); System.out.println(threadName+" : Aclient connected at "+ curTime); return (threadName + " :Message from Server at "+curTime); } }
// JSESocketFactory在程序中激活RMI的注册中心及Server服务 import java.rmi.registry.*; import java.rmi.*; import java.rmi.RMISecurityManager; public class JSESocketFactory { public static void main(String[] args){ try { //小技巧 Registry regObj = LocateRegistry.createRegistry(1099); CustWorkImpl obj = new CustWorkImpl(); Naming.rebind("myServer", obj); System.out.println ("myImpl created and bound in the registry to the name myServer"); } catch (Exception e) { System.out.println("myImpl.main: an exception occurred:"); e.printStackTrace(); } } }