我在C中有一个现有的库,我希望能够允许远程访问(从Linux或Windows)。我查看了一些常见的RPC疑点,比如Thrift和Protobuf,但是这两个都没有清晰地处理C风格的函数调用(比如按ref传递、char*而不是string、*而不是List等等)。简而言之,要使用这两种方法中的任何一种,我需要从头开始编写一个完整的IDL,并添加许多样板代码来将C风格的函数调用传递到这些环境中。这附近有RPC库吗可以直接处理C头文件(或有工具自动从C定义生成初始IDL?跨平台Linux/Windows兼容吗?需要绝对最小的样板代码?支撑插座性能是否相对较高(我要介绍的是XML-RPC)? 最佳答案 嗯,这里有protobuf-c,protobuf在C中的实现。然后是经典的XDR,发现在大多数/(所有?)类似于UNIX的系统,版本也适用于Windows。另请参见包含API概述的Linux xdr(3) man page。注意protobuf和XDR都是序列化库,它们不提供RPC。XDR的“配套RPC库”被称为,RPC,但我认为没有人用它编写新代码,而且AFAICS是unix特有的(portmap不在windows上运行,是吗?总之,这是个坏主意。还有protobuf-c-rpc这是protobuf RPC库的C版本;可能比经典RPC更好。关于c - 需要最少样板的C跨平台RPC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23125002/
10-13 07:44