如何用 C 语言编写 gRPC 客户端/服务器?

2024-05-23

我有一个用 C 编写的程序,想在其中包含 gRPC。然而,gRPC 的 API 是用 C++ 编写的。

我查看了这里并让 foo_client 和 foo_server 正常工作。https://github.com/Juniper/grpc-c/tree/master/examples https://github.com/Juniper/grpc-c/tree/master/examples

但是,C 客户端与我的 gRPC C++ 服务器不兼容。他们不会互相交谈。我相信这是因为我使用的是最新的 gRPC,它使用 protocbuf 版本 3.2.0。 Juniper 的 grpc-c 使用的是旧版本的 gRPC,该版本使用 protocbuf 版本 3.0.0。

因此,C 语言的 Juniper 版本似乎不适用于新的 gRPC。我知道 gRPC 低级 C API 应该在这里:https://github.com/grpc/grpc/blob/master/include/grpc/grpc.h https://github.com/grpc/grpc/blob/master/include/grpc/grpc.h但我在实施它时遇到了困难。谁能帮我理解它吗?

我已经有一段时间没有用 C 编程了,所以我有点生疏了。


如果您直接使用 gRPC 核心库,那么您将需要执行自己的序列化,并处理记录在https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/grpc_types.h https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/grpc_types.h.

如果您有任何具体问题,我们将很乐意提供帮助,但如果这只是一次性的事情,那么解决版本不兼容问题可能会更容易,或者简单地用 C 接口包装 C++ 实现。

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

如何用 C 语言编写 gRPC 客户端/服务器? 的相关文章

随机推荐