客户端的存根文件是否重复(模拟)服务器端发生的所有操作

时间:2013-11-17 17:39:32

标签: java rmi stub

客户端的存根文件是否重复(模拟)服务器端发生的所有进程。请解释存根在RMI中的作用,以及它如何与RMI的其他文件交互?

1 个答案:

答案 0 :(得分:0)

存根将方法的调用(例如String sayHello(String who))转换为在网络上发送到RMI服务器的消息,然后等待来自服务器的响应,将其转换为方法的返回类型,然后返回。所以,存根的代码基本上是这样的(这不是真正的代码。只是为了让你理解):

public String sayHello(String who) {
    byte[] message = translateMethodCallToBytes("sayHello", who);
    byte[] response = sendMessageToServer(message);
    String result = extractReturnValueFromResponse(response);
    return result;
}

在服务器端,骨架基本上做同样的事情,但在反向模式下:它侦听来自客户端的消息,将消息转换为方法调用,然后调用实际的RMI对象并将结果作为响应发送网络。