并发RPC服务器

时间:2012-07-28 17:59:27

标签: c rpc

我需要创建一个并发RPC服务器,它能够同时处理来自客户端的多个请求。

在linux中使用rpcgen编译器(基于sun RPC),它不支持为并发服务器创建存根的-A选项。 (-A选项在solaris中可用)

感谢有人能就此提出一些想法:

  1. 在linux中创建并发RPC服务器的方法是什么?一些谷歌搜索建议在存根中进行更改,这不是一个好主意。
  2. 可用的任何其他RPC软件包 - 替代sun rpc。

1 个答案:

答案 0 :(得分:3)

这是一篇如此古老的帖子,你肯定已经解决了它,但它对其他人有帮助:

在GNU工具链中提供的“ rpcgen ”RPC编译器中,相应的选项为“ -M ”,例如:

<强> rpcgen -M your_xdr_file.x

生成的代码的更改很简单但很优雅:调用者必须分配缓冲区,客户端存根将写入响应。这是线程安全API中的常见行为。所以将在服务器存根中发生,并且在服务器中出现一个挂钩(称为“PROGRAMNAME_VERSION_freeresult”),您将有机会释放在服务器端执行调用时可能已分配的所有资源。

希望它有所帮助!