如何通过 Java 中的远程方法发送数据?

javaobject oriented programmingprogramming更新于 2024/6/30 2:41:00

RMI 代表远程方法调用。它是一种允许驻留在一个系统 (JVM) 中的对象访问/调用在另一个 JVM 上运行的对象的机制。

RMI 用于构建分布式应用程序;它提供 Java 程序之间的远程通信。它在包 java.rmi 中提供。

要编写 RMI Java 应用程序,您必须遵循以下步骤 −

步骤 1 − 定义远程接口

远程接口提供特定远程对象的所有方法的描述。客户端与此远程接口进行通信。因此,您需要创建一个扩展预定义接口 java.rmi.Remote 的接口。

示例

import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote {
   void printMsg() throws RemoteException;
}

步骤 2 − 开发实现类(远程对象)

我们需要实现前面步骤中创建的远程接口。(我们可以单独编写实现类,也可以直接让服务器程序实现此接口。)因此,为远程接口的所有抽象方法提供实现。

示例

public class ImplExample implements Hello {
   public void printMsg() {
      System.out.println("This is an example RMI program");
   }
}

步骤 3 − 开发服务器程序

RMI 服务器程序应实现远程接口或扩展实现类。在这里,我们应该创建一个远程对象并将其绑定到 RMIregistry。因此,开发如下所示的服务器程序 −

示例

import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server extends ImplExample {
   public Server() {}
   public static void main(String args[]) {
      try {
         ImplExample obj = new ImplExample();
         Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
         Registry registry = LocateRegistry.getRegistry();
         registry.bind("Hello", stub);
         System.err.println("Server ready");
      } catch (Exception e) {
         System.err.println("Server exception: " + e.toString());
         e.printStackTrace();
      }
   }
}

步骤 4 − 开发客户端程序

在其中编写一个客户端程序,获取远程对象并使用此对象调用所需的方法。

示例

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
   private Client() {}
    public static void main(String[] args) {
      try {
         Registry registry = LocateRegistry.getRegistry(null);
           Hello stub = (Hello) registry.lookup("Hello");
         stub.printMsg();
      } catch (Exception e) {
         System.err.println("客户端异常:" + e.toString());
         e.printStackTrace();
      }
   }
}

步骤 5 −编译应用程序

编译应用程序 −

  • 编译远程接口。

  • 编译实现类。

  • 编译服务器程序。

  • 编译客户端程序。

步骤 6 − 执行应用程序

  • 使用以下命令启动 rmi  注册表。

启动 rmiregistry

           这将在单独的窗口中启动 rmi  注册表。

  • 运行服务器类文件,如下所示 −

  • 运行客户端类文件,如下所示 −

  • 验证 − 启动客户端后,您会在服务器中看到以下输出。


相关文章