具有 C++ 客户端和 C# 后端的协议缓冲区?

2024-05-01

如何通过 HTTP 或等效的 Web 服务将 C# 后端与 C++ 前端连接起来?


这里分为三个部分;服务器(听起来像 C#)、客户端(听起来像 C++)和传输。将它们分开,并从最重要的开始:

  • 传输:这里的重大决定是您希望数据采用什么形状。您提到了协议缓冲区,所以我们正在谈论二进制 - 但这可能是:

    • 原始八位字节流(想想:从网络服务器下载图像)
    • 返回流或字节[]的 SOAP Web 服务
    • 返回 MTOM 的相同 SOAP Web 服务

    任何都应该有效;选择哪个取决于可用的工具。重要的是:通过网络获取一大块二进制文件。

    此时您还需要考虑数据定义; A.proto 文件 http://code.google.com/apis/protocolbuffers/docs/proto.html可以定义您的模式,并且大多数协议缓冲区实现都包含一个生成匹配类的工具。

  • 服务器:根据上面的选择,这将是一个处理程序(IHttpHandler) 或 Web 服务类。不管怎样,他们的工作实际上是运行一些逻辑并返回字节流。如何获取数据取决于您,最终的工作是 填充 DTO 类型(在许多情况下从 .proto 生成,但不是strictly必要)并通过序列化 API 运行它,将结果写入流
  • 客户:反之亦然;从 .proto 生成 DTO,并通过反序列化 API 运行它

列出了各种 protobuf 实现(C++、C# 等)here http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有 C++ 客户端和 C# 后端的协议缓冲区? 的相关文章

随机推荐