千家信息网

怎么用java编写一个rmi

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容介绍了"怎么用java编写一个rmi"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RMI 指
千家信息网最后更新 2025年01月25日怎么用java编写一个rmi

本篇内容介绍了"怎么用java编写一个rmi"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。

调用这样一个对象时,其参数为 "marshalled" 并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为 "unmarshalled")上。该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。如果方法调用导致抛出异常,则该异常将指示给调用方。

提供远端访问的时候,我们首先需要定义远端能够访问哪些东西,在Java中,定义这类接口需要实现Remote接口

public interface Business extends Remote{public String echo(String msg) throws RemoteException;}

定义完接口之后,这些功能是需要我们自己在Server端实现的,因此,声明一个类实现我们提供接口。

public class BusinessImpl implements Business{@Overridepublic String echo(String msg) throws RemoteException {if("quit".equalsIgnoreCase(msg)) {System.out.println("Server will be shutdown");System.exit(0);}System.out.println("Message from client:"+msg);return "Server response:"+msg;}}

实现完这个方法之后,有一个问题是,怎么运行,既然是远端访问,肯定得有端口号,肯定得有实例,所以我们还需要注册我们的代码

public class Server {public static final String SERVER_REGISTER_NAME = "BusineeDemo";public static void main(String[] args) throws RemoteException {int port = 2016;Business business = new BusinessImpl();UnicastRemoteObject.exportObject(business,port);Registry registry = LocateRegistry.createRegistry(1099);registry.rebind(SERVER_REGISTER_NAME, business);}}

这里有两个Java的类:UnicastRemoteObject和LocateRegistry

一个接口:Registry

Registry接口:对简单的远端对象提供一个远端接口用于提供存储和获取远端对象的引用,而这些是通过任意的String类型的变量名称获取,bind,unbind,rebind方法是用于更改注册的这些名称,lookup和list方法是用于查询当前当前已经绑定的对象。

UnicastRemoteObject类:用于导出一个远端对象

LocateRegistry类:是一个用来获得远端调用对象引用的辅助类程序,主要是在一个特定的IP上构建一个远端对象来接受来自特定端口的回调。

简单的服务端完成了,现在来看客户端:

客户端代码就更加简单,前面我们提到我们可以通过Registry的lookup方法来获取当前已经绑定的服务,所以很自然,我们首先要获得这个Registry

public class Client {public static void main(String[] args) throws RemoteException, NotBoundException {// Registry registry = LocateRegistry.getRegistry("localhost");Registry registry = LocateRegistry.getRegistry("localhost", 1099);Business business = (Business) registry.lookup(Server.SERVER_REGISTER_NAME);System.out.println(business.echo("Hello Server"));}}

"怎么用java编写一个rmi"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

对象 方法 接口 代码 内容 参数 名称 客户 客户端 更多 知识 结果 并将 服务 肯定 实用 学有所成 接下来 东西 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大学校园网络安全应急预案 那个部门监督管理网络安全 ftp文件服务器后期怎么迁移 面试对软件开发有什么想法 大话手游服务器合并 南京共享存储服务器 沈阳推理服务器公司 广东麒龙互联网科技有限公司 虚拟化查看数据库 国内最大型学术期刊数据库 网络安全日的会议记录 数据库事务处理技术包括 软件开发类属于固定资产吗 网络技术基础综合实训报告 青岛存储服务器代理哪家好 徐汇区大规模软件开发是什么 双n网络技术 如何查找腾讯游戏注册的服务器 计算机网络技术的所属行业 免费观看直播软件开发的 西安软件开发外派公司 香港有哪些软件开发公司吗 新乡吉山网络技术服务有限公司 软件开发电脑配置组装 惠州商城软件开发方案 软件开发项 生命周期管理 非关系型数据库 知乎 港版ipad如何设置大陆服务器 云存储小程序服务器 边缘服务器的计算能力大小
0