Java RMI(Remote Method Invocation)远程方法调用

Java RMI(Remote Method Invocation)远程方法调用 详解 远程方法调用 Remote Method Invocation是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。 编写一个RMI的步骤 定义一个远程接口,此接口需要继承java.rmi.Remote 开发远程接口的实现类 创建一个server并把远程对象注册到端口 创建一个client查找远程对象,调用远程方法 实例 定义一个远程接口 public... 阅读详情

RMI软件包的描述

RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。调用这样一个对象时,其参数为 "marshalled" 并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为 "unmarshalled")上。该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。如果方法调用导致抛出异常,则该异常将指示给调用方。

RMI简单实现

1、客户端提供远程接口2、服务端拿到接口并实现接口里的所有方法3、在RMI注册表上注册服务端地址和远程接口对象4、客户端调用
声明:为了方便,本人的所有java文件都在同一文件夹内

定义远程访问接口

首先由客户端提供需要远程访问的接口,由服务端来实现,接口代码如下:

import java.rmi.Remote;

public interface IRMIface extends Remote {//继承远程对象Remote
	//由于继承了Remote,所以方法中要抛出RemoteException异常
	public long add(long a,long b) throws java.rmi.RemoteException;
}

服务端实现接口

接口实现代码如下:

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RMIfaceImpl extends UnicastRemoteObject implements IRMIface {
	private static final long serialVersionUID = 1L;
	protected RMIfaceImpl() throws RemoteException{
		//这个构造方法不能少
		//网上有人说是因为继承了UnicastRemoteObject用来抛出异常用的
		//具体还未深入研究 
	}
	@Override
	public long add(long a, long b) throws RemoteException {
		return a+b;
	}
}

服务端注册接口

注册接口代码:
import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
public class RemoteBinding {
	public static void main(String[] args) {
		try{
			IRMIface myRemote = new RMIfaceImpl();
			System.out.println("=========start binding===========");
			LocateRegistry.createRegistry(8088);//注册端口
			Naming.rebind("rmi://localhost:8088/remoteRMI", myRemote);//绑定
			System.out.println("=========OK===========");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

编写客户端代码

import java.rmi.Naming;
public class MyRequest {
	public static void main(String [] args){  
		try{
			System.out.println("=========RMI remoteRMI===========");
			IRMIface myRemote = (IRMIface) Naming.lookup("rmi://localhost:8088/remoteRMI");
			System.out.println("=========RMI OK remoteRMI===========");
			long test = myRemote.add(10L, 20L);
			System.out.println(test);
		}catch(Exception e){  
			e.printStackTrace();  
		}  
	}  
}

测试运行

CMD打开命令窗口进入到java文件所在的文件夹,编译好所有的类(以下操作均在class文件的文件夹下)

第一步、用rmiregistry命令启动服务

第二步、新开一个窗口输入命令 java RemoteBinding 运行服务端绑定接口

第三步、再新开一个窗口输入命令 java MyRequest 运行客户端调用

注意:以上顺序不能换


S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析 本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。 阅读详情

相关推荐

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

gcd,lcm

罗勇军的博客 7615

『Java安全』RMI(Java Remote Method Invocation)远程方法调用_Remote_Registery_Naming

Java RMI(Java Remote Method Invocation)用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。RMI使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。 **在传输过程中:会将对象进行序列化与反序列化,因此可能会带来安全隐患** RMI需要编写**Server端和Client端**,同时两者必须共有一个**接口类**,在Server端还要有此接口的**实现类**,...

Ho1aAs‘s Blog 1364

C# 实现鼠标轨迹录制与回放自动化功能(附源码)

通过本文的介绍,相信大家已经掌握了鼠标轨迹录制与回放功能的实现方式。该功能在自动化测试和重复性工作中具有重要应用价值。后续可以进一步优化,增加更多扩展功能,形成一个完整的自动化工具。

weixin_72139050的博客 1756

java远程调用方法_[转]Java远程方法调用

Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。Java RMI极大地依赖于接口。在需要创建一个远程对象的时候,程序员通...

weixin_33462927的博客 687

从零构建AXI接口的DDR3控制器:MIG IP核实战指南

本文详细介绍了如何从零构建AXI接口的DDR3控制器,重点解析MIG IP核的配置流程和优化策略。通过实战案例和仿真验证,帮助开发者掌握FPGA中DDR3控制器的AXI接口设计,提升高速数据传输效率。适用于图像处理、网络加速等高性能应用场景。

weixin_28256233的博客 451

联想ThinkServer SR588 重装raid5阵列信息(装完centos7后,找不到硬盘)

这里写自定义目录标题找不到硬盘选择光盘启动 找不到硬盘 装完centos7之后,提示重启,重启之后,就一直无法启动。 进入bios 看了,确实是有设置硬盘为第一启动选项。 选择光盘启动 本地标准硬盘也是找不到。 1、 重启进入bios在系统手设置里找到存储信息, 然后找到如图选项回车进入。 选择主目录进入。 进入Configuration Management 里面 先清除原来的设置信息 选择已启用在yes 提示清除成功。 返回上一目录选择,选择 Create Virtual Drive 再选择S

熠铭心时空的博客 2万+

Java Remote Method Invocation (RMI)

分析 UnicastServerRef # exportObject 得知,exportObject 返回的对象,是使用 JDK 动态代理创建的对象,从 RemoteObjectInvocationHandler 可以看出,这个代理对象的能力是,将对这个代理对象的方法调用,通过 RemoteObject 持有的 UnicastRef 对象的 invoke 方法启动本地 Socket 与远程对象的交互,从而得到远程对象的执行结果。怎么实现这个目标的?)其他的都是给 RMI Server 用的?

来啊 快活啊 1190

CST实战:变容二极管电容曲线提取全流程(附S参数设置技巧)

本文详细介绍了在CST Studio Suite中提取变容二极管电容-电压(C-V)曲线的完整实战流程。重点解析了S参数仿真的核心原理、DCFEED模块的正确配置、参数扫描的设置技巧,并探讨了集成SPICE模型进行精确仿真的方法,帮助射频工程师高效、准确地获取器件关键特性。

weixin_29237635的博客 529

java远程调用之RMI(终于可以自己写代码控制别人电脑了)

之前在研究生课程当中学了分布式系统这门课,而且还是自己的导师讲的这门课,在课堂上迷迷糊糊的晃悠了一学期,除了听见几个名词,也没太多印象。正好这几天用到远程过程调用,使用的是gRPC,想到之前上课听过,于是把这块的知识从书到教程好好地补充了一下。 本篇文章尽量不啰嗦,它的重要性自己可以私下了解一下。 一、什么是RMI 1、概念 RMI又叫做远程方法调用。在java中表示一台java虚拟机上的程序调用...

冯冬冬的博客 1834

保姆级教程:在ROS2 Humble上搞定Livox Mid-360雷达,从IP配置到Rviz点云显示

本文提供在ROS2 Humble上配置Livox Mid-360激光雷达的完整教程,涵盖从IP设置到Rviz点云显示的全流程。详细解析硬件连接、驱动编译、配置文件优化及常见问题排查,帮助开发者快速搭建开发环境并实现高效点云可视化。

weixin_30955617的博客 184

gps matlab 书,《GPS基本原理及其Matlab仿真》杨俊.pdf

本书讲述了全球定位系统(GPS)的基本原理和概念,具体包括:GPS测量原理、GPS的结构和发展历史;GPS伪距定位和载波相位定位的原理;GPS中使用的坐标系和时间系统;C/A码的实现原理及载波调制过程;GPS信号捕获和跟踪原理及实现;便携式GPS系统的设计与实现及常用芯片资料等。此外,本书还讲了利用Matlab仿真GPS中涉及到的各种算法和原理,并且给出了所有仿真源程序和仿真框图。利用Matlab...

weixin_33603105的博客 1176

禁用java rmi_java – 干净地关闭rmi服务器

我在关闭服务器组件时遇到了一些麻烦,并希望得到一些帮助.我的服务器代码如下所示,它有一个关闭服务器的方法服务器private final String address = "127.0.0.1";private Registry registry;private int port = 6789;public RmiServer() throws RemoteException {try {regi...

weixin_30753697的博客 763

SCI论文发表很容易【5】:比较容易中的期刊

整理了一些经管方面比较容易中稿的期刊,可供大家参考

qq_25018077的博客 1679

Java RMI 远程方法调用 (Remote Method Invocation)

本文来自于:http://yanguz123.iteye.com/blog/1570172 Java RMI 远程方法调用 (Remote Method Invocation) 博客分类:  Java   一、简介   RMI是远程方法调用的简称,象其名称暗示的那样,它能够帮助我们查找并执行远程对象的方法。通俗地说,远程调用就象将一个class放在A

illusion_Luna的专栏 1348

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

RMI-Java RMI 指的是远程方法调用 (Remote Method Invocation)

RMI Java RMI 指的是远程方法调用 (Remote Method Invocation),是java原生支持的远程调用 ,采用JRMP(JavaRemote Messageing protocol)作为通信协议,可以认为是纯java版本的分布式远程调用解决方案, RMI主要用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上,这里的通信可以理解为一个虚拟机上的对象调用另一个虚拟机上对象的方法 组成介绍 1.客户端: 1)存根/桩(Stub):远程对象在客户端上的代理; 2)

小城我家 564

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java远程方法调用(Remote Method Invocation,RMI);Dubbo、spring远程原理

Java远程方法调用(Remote Method Invocation,RMI) 一、什么是RMI 1、概念 RMI又叫做远程方法调用。在java中表示一台java虚拟机上的程序调用另外一台java虚拟机上的程序。QQ里面有一个远程控制别人电脑,其实就是基于这个原理。这一篇只是讲解一些基础的使用,如果深入进去,你也可以写一个远程控制器,去控制别人的电脑。 2、原理...

阿里渣渣java研发组-群主 754

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java远程方法调用(Remote Method Invocation, RMI)

RMI 1. 简介 l Java 远程方法调用(Remote Method Invocation, RMI)使得运行在一个Java虚拟机(Java Virtual Machine, JVM)的对象可以调用运行另一个JVM之上的其他对象的方法,从而提供了程序间进行远程通讯的途径。RMI是J2EE的很多分布式技术的基础,比如 RMI-IIOP乃至EJB。 l ...

暗黑王子 593

【Java知识】java进阶-RMI(Remote Method Invocation)远程方法调用相关知识

首先,需要定义一个远程接口,这个接口继承自接口,并且其方法必须声明抛出。这个接口定义了可以远程调用的方法集。RMI的原理可以概括为:通过定义远程接口和实现远程对象,利用存根和骨架(或动态代理)在网络上进行方法调用的序列化和反序列化,以及通过RMI注册表或命名服务来定位和查找远程对象。这些组件和步骤共同协作,实现了跨JVM的远程方法调用。需要注意的是,RMI依赖于Java序列化机制来传输对象,并且使用TCP/IP协议进行网络通信。首先,我们需要定义一个远程接口,这个接口将声明可以被远程调用的方法。

wendao76的专栏 1331

23.java-RMI使用实例(Remote Method Invocation,远程方法调用)

RMI(Remote Method Invocation,远程方法调用)是 Java 提供的一种技术,允许在不同的 Java 虚拟机(JVM)之间进行通信,就像在同一个 JVM 中调用方法一样。RMI 提供了分布式应用程序开发的 API,采用客户/服务器通信方式,在服务器上部署提供各种服务的远程对象,客户端请求访问服务器上远程对象的方法。

Alsn86的博客 1034

Java远程调用RMI(Remote Method Invocation)

1.RMI和Java Remote Method Invocation 在讨论RMI之前,我们先看看网站的架构。典型的网站有一个服务提供商(Web Server),多个服务使用者(Web Client)。网站使用的是浏览器(Browser)作为客户端,也就是所说的BS架构(Browser-Server)。还有一种不是使用浏览器作为客户端的,比如说即时聊天工具(QQ、MSN)等,它们需要你在本地安

lethorld的专栏 2652

java.rmi 是 Java 远程方法调用(Remote Method Invocation)的缩写,它是 Java 技术中用于实现分布式计算的一种机制

`java.rmi` 是 Java 提供的一套用于实现**远程方法调用(Remote Method Invocation, RMI)** 的核心 API,属于 Java 标准库(JDK)的一部分。RMI 允许一个 Java 虚拟机(JVM)中的对象调用另一个 JVM(可能位于不同主机上)中对象的方法,就像调用本地方法一样,从而支持**面向对象的分布式计算**。

[Blog][Domain] programb.blog.youkuaiyun.com 453

`org.omg.stub.java.rmi` 是 Java RMI(Remote Method Invocation,远程方法调用)技术中的一部分

`org.omg.stub.java.rmi` 是 Java 平台中与 **RMI-IIOP(Remote Method Invocation over Internet Inter-ORB Protocol)** 相关的一个包,主要用于支持 Java RMI 与 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)之间的互操作。以下是关于该包的详细说明:

[Blog][Domain] programb.blog.youkuaiyun.com 416

java RMI

背景:         分布式系统要求运行在不同的地址空间、不同的主机,并且能够通信。java提供了sockets来提供最基本的通信,作为最基本的通信机制,它是灵活的、足够的。然而sockets要求client和server工作在应用层协议上,通过编解码消息来通信,而且设计协议弄不好还容易出错。         Remote Procedure Call (RPC)是sockets的一种替

专栏 964

Java RMI-远程方法调用

一、Java RMI概观      RMI英文全称为:Remote Method Invocation,中文意思为:远程方法调用。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。      RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建和服务对象相同的方法。RMI的好处在于你不必亲自

tycoon的专栏 477
上一篇: WIN7安装Cygwin
下一篇: String、StringBuffer、StringBuilder三者的使用情况
wsx_java2011
博客等级 码龄15年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值