实现步骤
- 定义远程接口
- 实现服务端
- 实现客户端
- 编译源码文件
- 启动Java Rmi注册中心,服务端和客户端
代码实例
-
Hello.java (Interface)
1
2
3
4
5
6import java.rmi.Remote;
import java.rmi.RemoteException;
public interface extends Remote {
String sayHello() throws RemoteException;
} -
Server.java (服务端实现)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;
public class Server implements {
public String sayHello() {
return "hello world";
}
public static void main(String args[]) {
try {
Server obj = new Server();
Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
Registry registry = LocateRegistry.createRegistry(2002);
registry.bind("Hello", stub);
System.err.println("Server ready");
} catch (Exception e) {
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}
}
} -
Client.java (客户端实现)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import 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("",2002);
Hello stub = (Hello) registry.lookup("Hello");
String response = stub.sayHello();
System.out.println("response: " + response);
} catch (Exception e) {
System.err.println("Client exception: " + e.toString());
e.printStackTrace();
}
}
}
近期评论