2015-04-08 35 views
0

我想在c中使用节俭实现客户端/服务器。我能够使用节俭在cpp中生成服务器骨架。但是,当为c_glib生成时,服务器骨架文件没有被生成。如何在C(使用GLib)中创建Thrift服务器?

我在网上查了一下,但几乎没用。如果有人能够帮助我,这将是如此可观。

的.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() 
} 

回答

2

节俭的编译器C不产生骨架服务器;你需要自己编写这段代码。但是并没有涉及很多工作。

Thrift的源代码分发包括a server tutorial for C (GLib),它显示你需要做的事情。 (关于上下文,请参考the matching tutorial for C++the tutorial .thrift file,这两者都是基于这两者的。)我建议您仔细阅读,因为它提供了有关Thrift框架如何与您的代码进行交互的工作示例和重要信息。

在高层次上,在C中实现服务器的任务非常类似于C++。首先,创建一个派生自编译器生成的抽象基类(在你的情况下为TestSomethingHandler)的处理器类,它实现了你的服务器的方法。然后启动服务器,只需

  • 创建编译器生成的处理器(TestSomethingProcessor)的实例,它传递您的处理程序实现的实例;
  • 创建定义服务器如何通信的必需传输和工厂对象;最后
  • 用上述对象创建服务器类的一个实例,并开始运行它。

服务器教程中包含启动可用作参考的服务器的通用示例。

+0

感谢您的快速回复。这是新的。所以让我来更多地了解这一点。 –

+0

我可以实现服务器。谢谢您的帮助。 –

相关问题