如何在Java中透過遠端方法傳送資料?
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("Client exception: " + e.toString());
e.printStackTrace();
}
}
}步驟5 - 編譯應用程式
要編譯應用程式:
編譯遠端介面。
編譯實現類。
編譯伺服器程式。
編譯客戶端程式。
步驟6 - 執行應用程式
使用以下命令啟動 **rmi** 登錄檔。
Start rmiregistry
這將在一個單獨的視窗中啟動 **rmi** 登錄檔。
執行伺服器類檔案,如下所示:

執行客戶端類檔案,如下所示:

**驗證** - 一旦您啟動客戶端,您將在伺服器中看到以下輸出。

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP