gpt4 book ai didi

c++ - 具有大消息的跨平台 RPC

转载 作者:搜寻专家 更新时间:2023-10-31 01:47:28 24 4
gpt4 key购买 nike

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

与其滚动我自己的协议(protocol),我更愿意使用某种标准形式的 RPC。以前我曾将 XML RPC 用于跨平台应用程序,但这些特定命令需要包含大量数字数据(每个命令数千个 double 浮点值),并且命令发送频繁,所以我在想某种二进制序列化更适合。因此,我开始研究 Protocol Buffers。

那么,有几个问题:

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

最佳答案

  1. 没有,没有普遍接受的标准。一些库带有自己的 RPC 实现,但它们似乎都不是特别受欢迎。 (编辑:截至 2019 年,gRPC 变得相当流行。)

  2. 我觉得还不错。有些库甚至允许惰性解码,因此如果您只需要一部分数据,则无需解码所有嵌套结构。

  3. 除了未定义 RPC 格式外,消息的框架也未定义。所以你必须做一些自定义的方法,比如在开头添加一个长度字段。另一个未定义的部分是如何识别正在传输的消息的类型。确保为您自己的项目明确定义这些。

关于c++ - 具有大消息的跨平台 RPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com