我需要创建一个并发RPC服务器,它能够同时处理来自客户端的多个请求。
在linux中使用rpcgen
编译器(基于sun RPC),它不支持为并发服务器创建存根的-A
选项。 (-A
选项在solaris中可用)
感谢有人能就此提出一些想法:
答案 0 :(得分:3)
这是一篇如此古老的帖子,你肯定已经解决了它,但它对其他人有帮助:
在GNU工具链中提供的“ rpcgen ”RPC编译器中,相应的选项为“ -M
”,例如:
<强> rpcgen -M your_xdr_file.x
强>
生成的代码的更改很简单但很优雅:调用者必须分配缓冲区,客户端存根将写入响应。这是线程安全API中的常见行为。所以将在服务器存根中发生,并且在服务器中出现一个挂钩(称为“PROGRAMNAME_VERSION_freeresult
”),您将有机会释放在服务器端执行调用时可能已分配的所有资源。
希望它有所帮助!