首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有大型消息的跨平台RPC

具有大型消息的跨平台RPC
EN

Stack Overflow用户
提问于 2013-10-02 14:52:08
回答 1查看 654关注 0票数 2

我有一个应用程序,需要通过两台机器之间的专用以太网连接从运行在.NET上的C++应用程序到运行在Linux上的C++应用程序发出命令。

与其使用自己的协议,我更愿意使用某种标准的RPC形式。以前,我在跨平台的应用程序中使用了XML,但是这些特定的命令需要包含大量的数字数据(每个命令需要几千个双浮点值),并且经常发送命令,所以我认为某种二进制序列化更合适。因此,我已经开始研究协议缓冲区。

所以,有几个问题:

  1. 我知道协议缓冲区定义了序列化格式,但是对于如何使用它们来执行跨平台RPC,有什么公认的行业标准吗?
  2. 协议缓冲区是否适合表示具有可变大小数组的嵌套数据结构?每个命令的点数是可变的,部分数据的最自然的表示是一个结构数组,每个结构都包含一个点数组。所有这些数组都有任意给定命令的可变大小。
  3. 在使用协议缓冲区进行跨平台通信时,是否遇到了一些问题?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-02 17:03:26

  1. 不,没有普遍接受的标准。有些库有自己的RPC实现,但似乎没有一个是特别流行的。(编辑:截至2019年,gRPC已相当受欢迎。)
  2. 在我看来相当不错。有些库甚至允许延迟解码,因此如果只需要数据的一部分,就不需要对所有嵌套结构进行解码。
  3. 除了未定义的RPC格式之外,还没有定义消息的框架。因此,您必须执行一些自定义方法,例如在开头添加一个长度字段。另一个未定义的部分是如何识别正在传输的消息的类型。确保为您自己的项目清楚地定义这些内容。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19139923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档