我有一个应用程序,我需要通过两台机器之间的专用以太网连接从运行在 Windows 上的 .NET 应用程序向运行在 Linux 上的 C++ 应用程序发出命令。
与其滚动我自己的协议,我更喜欢使用一些标准形式的 RPC。以前我在跨平台应用程序中使用过 XML RPC,但是这些特定的命令需要包含大量的数字数据(每个命令有几千个双浮点值),并且经常发送命令,所以我在想某种二进制序列化更合适。因此,我开始研究协议缓冲区。
所以,有几个问题:
- 我知道 Protocol Buffers 定义了一种序列化格式,但是对于如何使用它们执行跨平台 RPC,是否有任何公认的行业标准?
- 协议缓冲区是否非常适合表示具有可变大小数组的嵌套数据结构?每个命令的点数是可变的,部分数据最自然的表示是一个结构数组,每个结构都包含一个点数组。对于任何给定的命令,所有这些数组的大小都是可变的。
- 在使用 Protocol Buffers 进行跨平台通信时,您是否遇到过任何问题?