2016-09-23 64 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