|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点程序本例子包括了共5个文件,分离是HelloClient,Hello,HelloServer,Configur,config.properties
--------------------------------------------------------------------------------
/*Hello.java*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.Remote;
importjava.rmi.RemoteException;
/**
*@authordogcome
*
*<p>远程办法挪用接口,界说远程挪用办法</p>
*/
publicinterfaceHelloextendsRemote{
StringsayHello()throwsRemoteException;
}
--------------------------------------------------------------------------------
/*HelloServer*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.RemoteException;
importjava.rmi.registry.LocateRegistry;
importjava.rmi.registry.Registry;
importjava.rmi.server.UnicastRemoteObject;
/**
*@authordogcome
*
*<p>服务器端,完成了Hello接口中的办法,用于完成远程挪用办法的详细营业逻辑</p>
*/
publicclassHelloServerextendsUnicastRemoteObjectimplementsHello{
Stringname;
publicHelloServer(Strings)throwsRemoteException{
super();
name=s;
}
publicStringsayHello()throwsRemoteException{
//TODOAuto-generatedmethodstub
return"Helloworld!";
}
publicstaticvoidmain(String[]args){
/**上面这句话若要加上,则必要举行权限的认证,即增添.policy文件
*而且在命令行中利用以下格局
*java-Djava.security.policy=java.policytest.rmi.HelloServer
*/
/*System.setSecurityManager(newRMISecurityManager());*/
Registryregistry=null;
try{
/**启动注册服务器,利用了这个语句就不再必要在命令行情况中
*启动registry服务了
*/
registry=LocateRegistry.getRegistry();
/*若没有取得毗连,则此句会抛出非常,前面在捕捉落后行相干处置*/
registry.list();
System.out.println("Registertheexistserver!");//$NON-NLS-1$
}catch(RemoteExceptionre){
try{
intport=Integer.parseInt(Configur
.getString("HelloServer.RegistryServerPort"));//$NON-NLS-1$
registry=LocateRegistry.createRegistry(port);
System.out.println("CreateRegistryServer!");//$NON-NLS-1$
}catch(Exceptione){
e.printStackTrace();
}
}
try{
HelloServerhelloServer=newHelloServer("Hello");
registry
.rebind(
Configur.getString("HelloServer.HelloServerName"),helloServer);//$NON-NLS-1$
System.out.println("HelloServerserverstart!");//$NON-NLS-1$
}catch(Exceptione){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------
/*HelloClient*/
/*
*Createdon2004-11-10
*
*/
packagetest.rmi;
importjava.rmi.*;
importjava.rmi.registry.LocateRegistry;
importjava.rmi.registry.Registry;
/**
*@authordogcome
*
*<p>客户端,必要注册服务器并利用jndi</p>
*/
publicclassHelloClient{
publicstaticvoidmain(String[]args){
/**上面这句话若要加上,则必要举行权限的认证,即增添.policy文件
*而且在命令行中利用以下格局
*java-Djava.security.policy=java.policytest.rmi.HelloServer
*/
/*System.setSecurityManager(newRMISecurityManager());*/
try{
/*注册服务器*/
StringhostName=Configur.getString("HelloServer.RegistryServerName");
intport=Integer.parseInt(Configur.getString("HelloServer.RegistryServerPort"));
Registryregistry=LocateRegistry.getRegistry(hostName,port);
Hellohello=(Hello)registry.lookup(Configur.getString("HelloServer.HelloServerName"));
Stringmessage=hello.sayHello();
System.out.println(message);
}catch(Exceptione){
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------
/*
*Createdon2004-11-12
*
*/
packagetest.rmi;
importjava.util.MissingResourceException;
importjava.util.ResourceBundle;
/**
*@authordogcome
*
*<p>猎取体系运转所必要的设置信息,对应的设置文件称号为config.properties</p>
*/
publicclassConfigur{
privatestaticfinalStringBUNDLE_NAME="test.rmi.config";
privatestaticfinalResourceBundleRESOURCE_BUNDLE=ResourceBundle
.getBundle(BUNDLE_NAME);
privateConfigur(){
}
/**
*<p>经由过程key称号取得设置文件的相干信息</p>
*@paramkeykey称号
*@returnString设置文件信息
*/
publicstaticStringgetString(Stringkey){
try{
returnRESOURCE_BUNDLE.getString(key);
}catch(MissingResourceExceptione){
return!+key+!;
}
}
}
--------------------------------------------------------------------------------
#config.properties
HelloServer.RegistryServerPort=1111
HelloServer.HelloServerName=HelloServer
HelloServer.RegistryServerName=127.0.0.1
--------------------------------------------------------------------------------
起首利用rmictest.rmi.HelloServer命令天生必要的stub及skel两个类文件
然后运转HelloServer服务器javatest.rmi.HelloServer
最初运转HelloClient客户端javatest.rmi.HelloClient
屏幕输入HelloWorld,如许,一个最复杂的rmi远程挪用乐成了
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。 |
|