图 RMI联机示妄图 // 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();}} }//RMIClient.java Client端的圭臬//圭臬中有关IP的部门请填入Server的IP Addressimport java.rmi.Naming;import java.rmi.RemoteException;import java.rmi.RMISecurityManager;public class RMIClient {static String servMsg =""; public static void main(String[] args){ try{ if(System.getSecurityManager() == null)System.setSecurityManager(new RMISecurityManager());CustWork serRef =(CustWork) Naming.lookup("rmi://192.168.0.1:1099/myServer");servMsg = serRef.getSvrMsg(); System.out.println(servMsg);}catch(Exception e){e.printStackTrace();} }}编译及施行圭臬注意!!此部门的编译想法为jdk1.1.8的编译想法,若想在算计机中当Server且和J2SE联机的话,你需要设定C:\jdk1.3.1\jre\lib\security 中的 java.policy 一些联机权限的设定,其余形成 stub 及 skeleton 的时刻也需要运用rmic –v1.1的参数,因为 Perosnal Java 是参照jdk.1.1.x的规格实作出来的。编译圭臬Server端的Interface及Servicec:\jdk1.1.8\bin\javac –classpath %pjeeclasspath%;. CustWork.java(1)c:\jdk1.1.8\bin\javac –classpath %pjeeclasspath%;. CustWorkImpl.java(2)形成Stub斯诺克台球桌及Skeletonc:\jdk1.1.8\bin\rmic -classpath %pjeeclasspath%;. CustWorkImpl(3)编译Server端圭臬c:\jdk1.1.8\bin\javac -classpath %pjeeclasspath%;. JSESocketFactory.java(4)编译Client端圭臬c:\jdk1.1.8\bin\javac -classpath %pjeeclasspath%;. RMIClient.java(5)施行圭臬注意您需要开两个DOS窗口来施行这两只圭臬 激活RMI Server圭臬 pjava -classpath %pjeeclasspath%;. JSESocketFactory(1) 图 RMI Server激活画面 激活RMI Client圭臬pjava -classpath %pjeeclasspath%;. RMIClient 图 RMI Client激活画面 其余将Client端移植到WinCE中千万别忘了把XXXX_Stub档案也一同移动从前喔。结论当网络技能,协同无线网络卡,或是其余的产物,笃信会是十分乐趣的事情喔。(本文已被浏览 196 次) [第1页] [第2页] [第3页] [第4页] (转载请注明出处:http://www.therapeuticsqueeze.com/taiqiuxiaoyouxi/20100906/208.html) |