5implementasi RPC Java
5implementasi RPC Java
Dua program client (RPCClient.java) dan server (RPCServer.java) di bawah ini memperlihatkan bagaimana
RPC (Remote procedure call) disimplementasikan di dalam Bahasa Pemrogaraman Java menggunakan
pustaka bawaan Socket, SocketServer dan yang terkait.
RPCServer.java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
@SuppressWarnings("CallToThreadStartDuringObjectConstruction")
public RPCServer(int port) throws IOException {
serverSocket = new ServerSocket(port);
while (true) {
switch (commands[0]) {
case "add":
result = (operand1 + operand2);
message = operand1 + " + " + operand2 + " = " + result;
break;
case "sub":
result = (operand1 - operand2);
message = operand1 + " - " + operand2 + " = " + result;
break;
case "mul":
result = (operand1 * operand2);
message = operand1 + " * " + operand2 + " = " + result;
break;
case "div":
result = (operand1 / operand2);
message = operand1 + " / " + operand2 + " = " + result;
break;
case "mod":
result = (operand1 % operand2);
message = operand1 + " % " + operand2 + " = " + result;
break;
RPCClient.java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
@SuppressWarnings("CallToThreadStartDuringObjectConstruction")
public RPCClient(String ipAddress, int port) throws IOException {
try {
Scanner scan = new Scanner(System.in);
while (true) {
if (command.equals("exit")) {
System.exit(0);
}
client.sendMessage(command);
System.out.print("\n");
}
} catch (IOException ex) {
System.err.println("\nUnable to connected!");
}
Server Output:
Client Output:
Connected to server
Commands [add, sub, mul, div, mod, exit] :
add
Enter 1st number : 10
Enter 2nd number : 20
Server response : 10 + 20 = 30
sub
Enter 1st number : 50
Enter 2nd number : 20
Server response : 50 - 20 = 30
mul
Enter 1st number : 10
Enter 2nd number : 2
Server response : 10 * 2 = 20
div
Enter 1st number : 100
Enter 2nd number : 5
Server response : 100 / 5 = 20
mod
Enter 1st number : 1234
Enter 2nd number : 10
Server response : 1234 % 10 = 4
exit