2016-09-23 67 views
0

我在运行最简单的RPC程序时遇到了问题。我想要一个程序,它将从客户端发送一个字符串到服务器,服务器将字符串发送回客户端。这是echo.x:运行simpel RPC程序时出错

program ECHO_PROG{ 
    version ECHO_VERS{ 
     string ECHO(string) = 1; 
    } = 1; 
} = 0x22233323; 

捉迷藏后的rpcgen -a -C echo.x,我做节目,然后我尝试运行

./echo_server & 
./echo_client localhost 

,我得到的错误:

call failed: RPC: Can't encode arguments. 

我在.x文件中声明了正确的参数类型吗?为什么我得到那个错误?如果我想发送一个字符串到服务器并让它回显,我是否正确地处理了这个问题?我知道如何创建一个RPC,它将返回一个int,但返回一个字符串使我深深地感到困惑。请帮助,如果你在那里!

回答

0

也许不是快乐返回一个字符串...试试这个:

program ECHO_PROG{ 
    version ECHO_VERS{ 
     int ECHO(string) = 1; 
    } = 1; 
} = 0x22233323; 
当然

如果整点是返回一个字符串,那么你需要做一些工作 - 我相信你已经把它包在自定义类型中。

+0

我可以返回一个结构吗? – nbk