RMI例子

二:rmi相关类
rmi由5个包和3个应用工具组成:

    java.rmi                       组织客户端的rmi类,接口和异常
    java.rmi.sever                 组织服务器端的rmi类,接口和异常
    java.rmi.registry              组织用于管理rmi命名服务的类
    java.rmi.dgc                   组织用于管理分布式垃圾收集的类
    java.rmi.activation            组织用于实现按需缉获的rmi服务的类

    rmic                           编译器,生成stub和sketon
    rmiregistry                    一个为rmi提供命名服务的服务器,这项服务把名字和对象关联在一起
    rmid                           一个支持rmi激活框架的服务器

但是大多数情况下,我们只需要使用每个包的一部分方法和接口就可以成功的实现一个使用rmi分布式解决方案.



三:步骤
要完成以上步骤需要有以下几个步骤: 
1、生成一个远程接口 
2、实现远程对象(服务器端程序) 
3、生成占位程序和骨干网(服务器端程序) 
4、编写服务器程序 
5、编写客户程序 
6、注册远程对象 
7、启动远程对象 



四:一个简单应用
一共有三个java类,远程接口,服务端程序,客户端程序

远程接口:

import java.rmi.*;

public interface HelloIn extends java.rmi.Remote{
 String sayHello() throws RemoteException;
}


服务端程序:

import java.rmi.*;
import java.net.*;
import java.rmi.registry.*;
import java.rmi.server.*;

public class Hello extends java.rmi.server.UnicastRemoteObject implements HelloIn{
 public Hello() throws RemoteException{
  super();
 }
 
public String sayHello() throws RemoteException{
  return "Hello,World!";

 } 
 public static void main(String[] args){
  //System.setSecurityManager(new java.rmi.RMISecurityManager());
  try{
  
      
Hello h=new Hello();
      java.rmi.Naming.rebind("hello",h);
      System.out.print("Ready......");
   }
   catch(Exception e){
    e.printStackTrace();
   }
  
 }
}

rmic Hello              生成Stub 和 Skeleton 
rmiregistry   执行服务端程序前在命令行方式下启动rmi的注册程序  
java Hello             启动服务器 

客户端程序:

import java.rmi.*;
import java.rmi.registry.*;

public class Helloworld{
 public static void main(String[] args){
  //System.setProperty( "java.security.policy", "client.policy" );
  //System.setSecurityManager(new java.rmi.RMISecurityManager());
  try{
   
HelloIn hi=(HelloIn)Naming.lookup("//127.0.0.1/hello");
   for(int i=0;i<10;i++){
    System.out.println(hi.sayHello());
   }
  }
  catch(Exception e){
   e.printStackTrace();
  }
  }
 }
编译:javac Helloworld.java
最后执行java Helloworld 控制台打印出 Hello,World,成功调用.

rmi例子 - longmans - longmans的博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值