Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 원격 메소드를 통해 데이터를 보내는 방법은 무엇입니까?

<시간/>

RMI는 원격 메소드 호출을 나타냅니다. . 한 시스템(JVM)에 상주하는 객체가 다른 JVM에서 실행 중인 객체에 액세스/호출할 수 있도록 하는 메커니즘입니다.

RMI는 분산 애플리케이션을 구축하는 데 사용됩니다. Java 프로그램 간의 원격 통신을 제공합니다. java.rmi 패키지에 제공됩니다. .

RMI Java 애플리케이션을 작성하려면 다음 단계를 따라야 합니다. -

Step1 - 원격 인터페이스 정의

원격 인터페이스는 특정 원격 개체의 모든 메서드에 대한 설명을 제공합니다. 클라이언트는 이 원격 인터페이스와 통신합니다. 따라서 미리 정의된 인터페이스인 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 서버 프로그램은 원격 인터페이스를 구현하거나 구현 클래스를 확장해야 합니다. 여기에서 원격 개체를 만들고 RMI 레지스트리에 바인딩해야 합니다. . 따라서 아래와 같이 서버 프로그램을 개발하십시오 -

예시

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단계 - 애플리케이션 컴파일

응용 프로그램을 컴파일하려면 -

  • 원격 인터페이스를 컴파일합니다.

  • 구현 클래스를 컴파일합니다.

  • 서버 프로그램을 컴파일합니다.

  • 클라이언트 프로그램을 컴파일합니다.

Step6 − 애플리케이션 실행

  • rmi 시작 다음 명령을 사용하여 레지스트리.

Start rmiregistry

그러면 rmi 가 시작됩니다. 별도의 창에 레지스트리를 표시합니다.

  • 아래와 같이 서버 클래스 파일을 실행합니다 -

Java에서 원격 메소드를 통해 데이터를 보내는 방법은 무엇입니까?

  • 아래와 같이 클라이언트 클래스 파일을 실행합니다. -

Java에서 원격 메소드를 통해 데이터를 보내는 방법은 무엇입니까?

  • 인증 − 클라이언트를 시작하자마자 서버에 다음과 같은 출력이 표시됩니다.

Java에서 원격 메소드를 통해 데이터를 보내는 방법은 무엇입니까?