我正在尝试使用thrift在c中实现客户端/服务器。我能够使用thrift在cpp中生成服务器骨架。但是在为c_glib生成时,不会生成服务器框架文件。
我在互联网上搜索了同样的内容,但几乎没用。如果有人可以帮我解决这个问题,那将是如此明显。
我正在使用的.thrift文件在下面给出
#!/usr/local/bin/thrift --gen cpp
namespace c_glib Test
struct packet {
1:required i32 header,
2:required i32 data,
3:required i32 crc
}
service Something {
i32 ping(),
packet transfer()
}
答案 0 :(得分:2)
用于C的Thrift编译器不会生成骨架服务器;您需要自己编写此代码。然而,并没有涉及很多工作。
Thrift的源代码分发包括显示您需要执行的操作的a server tutorial for C (GLib)。 (有关上下文,请参阅两者所基于的the matching tutorial for C++和the tutorial .thrift file。)我建议您仔细阅读,因为它提供了一个工作示例和有关Thrift框架如何与您进行交互的重要信息代码。
在较高的层面上,在C中实现服务器的任务与C ++的任务非常相似。首先,创建一个从编译器生成的抽象基类(在您的情况下为TestSomethingHandler
)派生的处理程序类,它实现了您的服务器方法。然后启动服务器,你只需
TestSomethingProcessor
)的实例,并将其传递给处理程序实现的实例; 服务器教程包含启动服务器的一般示例,您可以将其用作参考。