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

时间:2010-06-14 19:12:18

标签: c# c++ protocol-buffers

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

2 个答案:

答案 0 :(得分:1)

这里有三个部分;服务器(听起来像C#),客户端(听起来像C ++)和传输。单独考虑,从最重要的开始:

  • 传输:这里的重大决定是你想要数据的形状。你提到协议缓冲区,所以我们说二进制 - 但可能是:

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

    任何应该工作;选择哪个取决于可用的工具。重要的是:通过线路获得一大块二进制文件。

    此时您还需要考虑数据定义; .proto file可以定义您的模式,大多数协议缓冲区实现都包含一个生成匹配类的工具。

  • 服务器:根据上面的选择,这可能是一个处理程序(IHttpHandler)或一个Web服务类。无论哪种方式,他们的工作实际上是运行一些逻辑并返回一个字节流。你如何得到你的数据取决于你,然后最终的工作就是 填充DTO类型(在很多情况下从.proto生成,但不是严格必需)并通过序列化API运行,将结果写入流
  • 客户:相反;从.proto生成您的DTO,并通过反序列化API
  • 运行它

列出了各种protobuf实现(C ++,C#等)here

答案 1 :(得分:0)

C ++通过您选择的HTTP-Requests(webservice和其他)访问后端的公开部分。