Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะส่งข้อมูลผ่านวิธีรีโมตใน java ได้อย่างไร?


RMI ย่อมาจาก Remote Method 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 - พัฒนาคลาส Implementation (วัตถุระยะไกล)

เราจำเป็นต้องใช้อินเทอร์เฟซระยะไกลที่สร้างขึ้นในขั้นตอนก่อนหน้านี้ (เราสามารถเขียนคลาสการนำไปใช้แยกกัน หรือเราสามารถทำให้โปรแกรมเซิร์ฟเวอร์ใช้อินเทอร์เฟซนี้โดยตรง) ดังนั้น จัดเตรียมการใช้งานให้กับวิธีนามธรรมทั้งหมดของอินเทอร์เฟซระยะไกล

ตัวอย่าง

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();
      }
   }
}

Step4 - พัฒนาโปรแกรมไคลเอนต์

เขียนโปรแกรมไคลเอนต์ในนั้น ดึงวัตถุระยะไกลและเรียกใช้วิธีการที่จำเป็นโดยใช้วัตถุนี้

ตัวอย่าง

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 ได้อย่างไร?