当前位置: 首页 > 知识库问答 >
问题:

Java RMI客户端

慕容文昌
2023-03-14

我正在尝试使用RMI客户机-服务器通信。我编写了以下类/接口:

>

  • 接口远程接口扩展远程
  • 类HelloStub扩展UnicastRemoteObject实现远程接口
  • 类服务器,我绑定了远程obj
  • 客户端分类如下:

    import java.rmi.*;
    
    public class Client 
     {
         public static void main(String[] args) 
        { 
             try
            {
            String globalName = "rmi//127.0.0.1:1099/hello";
            RemoteInterface remoteObj = (RemoteInterface)Naming.lookup(globalName);
    
            System.out.println(remoteObj.SayHello());
    
    
            }
            catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
    

    我不明白为什么我必须使用interface RemoteInterface进行查找?我不能使用HelloSub类吗,它是真正的远程obj?

    谢谢,再见。

  • 共有1个答案

    利思源
    2023-03-14

    如果知道类名,可以定义存根类实例而不是RemoteInterface,并将查找结果强制转换为存根。

    但是定义存根而不是接口有什么好处呢?

     类似资料:
    • 我正在实现一个简单的JavaRMI应用程序。它的主要目标是加2个整数。代码源如下:客户端和服务器端的AdditionInterface

    • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

    • 我正在Java开发一个游戏,使用RMI进行所有网络通信。RMI允许我在服务器上调用方法,但对我来说还不够。我还希望服务器能够在连接的客户端之间传播消息。 我的客户机查找服务器(它的接口扩展为远程)并在其上注册。它允许服务器知道谁已连接。我的客户机还实现了一个扩展远程的接口。这是我的代码的一部分: 接口声明: 服务器端: 客户端: 此解决方案适用于本地,但当我尝试通过Internet使用它时则不起作

    • URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL

    • 客户端事件通过 SetEvent 方法进行设置。 客户端事件有两个,它们分别定义为: type onErrorEvent interface { OnError(name string, err error) }   type onFailswitchEvent interface { OnFailswitch(Client) } 因为 go 语言不需要显式实现接口的特点,所以这两

    • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string

    • 客户端下载地址: windows 32位安装包 windows 64位安裝包 mac 安装包 Android App iOS App

    • 问题 你想使用网络上提供的服务。 解决方案 创建一个基本的 TCP 客户机。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 connection = net.createConnection port, domain connection.on 'connect', () -> console.log