使用RPCGen来理解RPC

时间:2015-02-28 21:44:36

标签: c rpc

我正在尝试使用RPCGen了解RPC的基础知识。我按照基本教程编写了下面的myrpc.x文件

program MESSAGEPROG {
    version EVALMESSAGEVERS {
        int EVALMESSAGE(string) = 1;
    } = 1;
} = 0x20000002;

我通过运行

编译它
rpcgen -a -C myrpc.x

在生成的server.c文件中,我添加了一个printf语句,如下所示

printf("Message is: %s,\n", *argp);       

然后我运行make -f Makefile.myrpc并通过运行myrpc_server启动服务器。现在当我运行客户端'myrpc_client'时,我在服务器中打印了以下消息

Message is: H���5�

现在我的问题是这个论点来自“H 5 ”,因为这不是我在运行客户端时的论据?也有人可以解释我如何开始用rpcgen运行复杂的程序?

1 个答案:

答案 0 :(得分:1)

垃圾值来自client.c中第15行的代码,其中未初始化的变量用作rpc调用的参数。我的rpc版本显示错误:

  

调用失败:RPC:不能编码参数"

15     char * evalmessage_1_arg;

"如何使用rpc开始运行复杂的程序?"它'就在你身上我们不能说什么时候需要使用rpc。您可能有一些理由选择此实现。

rpc的一些用例是慢速计算机上的瘦客户端,需要一些昂贵的计算。客户端将数据发送到功能强大的服务器,执行繁重的工作并返回结果。