Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでリモートメソッドを介してデータを送信する方法は?


RMIはRemoteMethod Invocationの略です 。これは、あるシステム(JVM)にあるオブジェクトが、別のJVMで実行されているオブジェクトにアクセス/呼び出すことを可能にするメカニズムです。

RMIは、分散アプリケーションを構築するために使用されます。 Javaプログラム間のリモート通信を提供します。パッケージjava.rmiで提供されます 。

RMI Javaアプリケーションを作成するには、以下の手順に従う必要があります-

ステップ1-リモートインターフェイスを定義する

リモートインターフェイスは、特定のリモートオブジェクトのすべてのメソッドの説明を提供します。クライアントはこのリモートインターフェイスと通信します。したがって、事前定義されたインターフェースjava.rmi。リモートを拡張するインターフェースを作成する必要があります。 。

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でリモートメソッドを介してデータを送信する方法は?

  • 以下に示すようにクライアントクラスファイルを実行します-

Javaでリモートメソッドを介してデータを送信する方法は?

  • 確認 −クライアントを起動するとすぐに、サーバーに次の出力が表示されます。

Javaでリモートメソッドを介してデータを送信する方法は?


  1. JavaでJListアイテムを選択するときに値を表示するにはどうすればよいですか?

    JList JComponentのサブクラスです ユーザーが単一のいずれかを選択できるようにするクラス または複数のアイテムの選択 。 JListはListSelectiionListenerを生成できます インターフェースであり、1つの抽象メソッド valueChanged()が含まれています 。 MouseListener を実装することで、JListからアイテムが選択されたときに値を表示できます。 インターフェースまたは拡張MouseAdapter クラスを作成し、 getClickCount()を呼び出します シングルクリックを使用するメソッド イベント( getClickCou

  2. JavaでJPanelのpaintComponent()メソッドを実装するにはどうすればよいですか?

    JPanel は軽量のコンテナであり、見えない コンポーネント Javaで。 JPanelのデフォルトのレイアウトはFlowLayout 。 JPanelを作成したら、他のコンポーネントを JPanelに追加できます。 add()を呼び出してオブジェクトを作成します コンテナから継承されたメソッド クラス。 paintComponent() このメソッドは、 JPanelで何かを描画するために必要です 背景色を描く以外。このメソッドは、 JPanelにすでに存在します スーパーを使用する必要があるようにクラス このメソッドに何かを追加し、グラフィックスを取る宣言 オブジェクト パラメータ