RMI-技术理解(初步概念)

本文详细介绍了Java RMI的基本概念及其工作流程。通过具体示例讲解如何搭建服务器端和客户端,实现远程方法调用。重点包括服务器端注册表设置、端口绑定及客户端寻址过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.zwt.com.RMI;

import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;

/***
 * Hello的服务器
 *
 * @author wentaozhang
 */
public class HelloServer {

    public static void main(String[] args) {

        try {
            IHello Rhello = new HelloImpl();

            // 本地注册端口号为8888,这一步的关键是把对象绑定到远程注册表中去
            //相当于完成一个端口,给一个端口存储可供调用的对象--具体的按照接口去
            LocateRegistry.createRegistry(8888);
            // 完成ip与端口号的绑定
            Naming.bind("rmi://localhost:8888/RHello", Rhello);
            System.out.println("端口号绑定成功,服务器开启成功");

        } catch (RemoteException e) {
            System.out.println("创建远程对象失败");
            e.printStackTrace();
        } catch (MalformedURLException e) {
            System.out.println("发生url地址畸形");
            e.printStackTrace();
        } catch (AlreadyBoundException e) {
            System.out.println("发生重复绑定的错误");
            e.printStackTrace();
        }

    }
}

1.首先RMI的概念
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。
2.RMI的大致的流程
2.1服务器设置
我的理解是 设置远程的服务器中注册一个注册表,首先完成一个端口,表示为一个仓库,用于存储拥有方法实现的对象
具体的代码如下:

 IHello Rhello =  new  HelloImpl();
---完成对象的实例化
  // 本地注册端口号为8888,这一步的关键是把对象绑定到远程注册表中去
             //相当于完成一个端口,给一个端口存储可供调用的对象--具体的按照接口去
            LocateRegistry. createRegistry(8888);
---------完成本地服务器的注册
Naming.bind( "rmi://localhost:8888/RHello"  , Rhello);

---------完成注册表的绑定--这个部分可以选择看源码
源码中的实现,服务器中是利用TCP,完成网络数据的交互--具体的实现要看源码-这边就不详细的说明了
关键在于Naming这个类中,很好的完成了各种方法的封装~例如根据url,找到主机和端口,使用HashTable存储功能对象
2.1客户端设置
//使用Naming这个封装完成寻址,找端口
IHello hello= (IHello) Naming.lookup(  "rmi://localhost:8888/RHello"  ); 
这个部分的写法是完成,寻址,分析传来的url,port,功能对象
具体的实现是利用TCP完成数据信息的传递,最后生成一个代理类,完成功能代码的实现


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值