Tag: sunrpc

了解XDR规范以创建* .x文件

我一直在浏览互联网上的几个网站,并且实际上想知道我们如何在.x文件中编写规范以在.c文件中为RPC生成等效函数。 我访问过的每个网站都建议在* .x文件中使用以下类型的规范: program ADD_PROG { version ADD_VERS { int ADD(intpair) = 1; } = 1; } = 0x23451111; 因此,为了实际理解,我从一个名为ganglia的开源项目中获取了gm_protocol.x ,并使用rpcgen生成了等效的C源代码( gm_protocol_xdr.c )和C头文件( gm_protocol.h )。 [rohit@ganglia-server rpc]$ rpcgen -C gm_protocol.x [rohit@ganglia-server rpc]$ [rohit@ganglia-server rpc]$ ll total 24 -rw-rw-r– 1 rohit rohit 5786 Oct 28 17:52 gm_protocol.h -rw-rw-r– 1 rohit rohit 3485 Oct 28 15:04 gm_protocol.x […]

无法在远程过程调用中编码参数以进行服务器注册

我有点疯狂试图弄清楚为什么这不起作用。 我正在使用sunrpc,但生成的服务器代码会抛出以下内容: 无法注册服务:RPC:无法编码参数 无法注册(MYRPC,MYRPC_V1,udp)。 我不知道为什么会这样。 我正在执行以下操作来生成存根: $ rpcgen -NMC myrpc.x 这是我的XDR struct imgdata{ opaque data; }; program MYRPC { version MYRPC_V1 { imgdata minify(imgdata) = 1; } = 1; } = 0x30D0D0DFF; 编译.x文件以创建客户端,服务器,xdr编组代码或标头时,我没有收到任何错误。 我还实现了rpc接口,但由于在我尝试启动生成的服务器(myrpc_svr.c)时抛出该错误,因此无法对其进行测试。 甚至引用此错误消息的参数是什么? 它不喜欢我在XDR中定义的函数的实现吗? 为什么编码参数会导致程序甚至无法注册? 我真的很惊讶这不是客户端错误消息