2015-04-08 61 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

我可以實現服務器。謝謝您的幫助。 –

相關問題