接口:
Service 实现:
Client 调用:
通过服务程序生成代理(stub和skeleton)
rmic practice.MyRemoteImpl
启动 注册程序(在单独的CMD中):
rmiregistry
启动服务程序:
java practice.MyRemoteImpl
启动客户程序:
java practice.MyRemoteClient
package
practice;
import java.rmi. * ;
interface MyRemote extends Remote {
public String sayHello() throws RemoteException;
}
import java.rmi. * ;
interface MyRemote extends Remote {
public String sayHello() throws RemoteException;
}
Service 实现:
package
practice;
import java.rmi. * ;
import java.rmi.server. * ;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
public MyRemoteImpl() throws RemoteException{
}
public String sayHello() throws RemoteException{
return "Server say: Hello!";
}
public static void main(String[] args){
try{
MyRemoteImpl service = new MyRemoteImpl();
Naming.rebind("Remote_Hello", service);
}catch(Exception e){
}
}
}
import java.rmi. * ;
import java.rmi.server. * ;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {
public MyRemoteImpl() throws RemoteException{
}
public String sayHello() throws RemoteException{
return "Server say: Hello!";
}
public static void main(String[] args){
try{
MyRemoteImpl service = new MyRemoteImpl();
Naming.rebind("Remote_Hello", service);
}catch(Exception e){
}
}
}
Client 调用:
package
practice;
import java.rmi. * ;
public class MyRemoteClient {
public static void main(String[] args){
try{
MyRemote stub = (MyRemote)Naming.lookup("rmi://127.0.0.1/Remote_Hello");
for(int i=0; i< 100; i++){
System.out.println(stub.sayHello());
}
}catch(Exception e){
e.printStackTrace();
}
}
}
import java.rmi. * ;
public class MyRemoteClient {
public static void main(String[] args){
try{
MyRemote stub = (MyRemote)Naming.lookup("rmi://127.0.0.1/Remote_Hello");
for(int i=0; i< 100; i++){
System.out.println(stub.sayHello());
}
}catch(Exception e){
e.printStackTrace();
}
}
}
通过服务程序生成代理(stub和skeleton)
rmic practice.MyRemoteImpl
启动 注册程序(在单独的CMD中):
rmiregistry
启动服务程序:
java practice.MyRemoteImpl
启动客户程序:
java practice.MyRemoteClient