2017-01-10 84 views
1

我想使用遠程過程調用(RPC)開發Qt5/C++客戶端 - 服務器應用程序。遠程過程調用 - 客戶端提供的服務

想法: 服務器偵聽多個客戶端的傳入連接。 客戶提供一組服務器可以調用的程序/服務,以便從客戶端收集數據並通知其他客戶有關更改。

這裏是問題: 到目前爲止,我見過的RPC庫似乎期望服務器提供客戶端可能調用的服務。但我想做相反的事情。客戶應該提供服務器可能調用的服務。 方向很重要,因爲我只想在服務器端啓用端口轉發,而不是在客戶端。

我檢查的庫是:

問題:

  • 是否有一個原因,這些庫僅在服務器端提供服務?
  • 我可能只錯過了文檔中的那部分?
  • 是否有RPC提供客戶端服務?
+1

請確認:這聽起來像你想連接到B和B.提供服務 – user4581301

+0

是的,這就是它如何工作。 – Paul

+0

不知道任何關。您是否考慮過打開隧道到B,B通過隧道連接並從A請求服務? – user4581301

回答

1

gRPC支持雙向流式傳輸,可以滿足您的需求。

客戶端可以打開與服務器的長期連接,然後服務器可以通過在流上發送響應來「調用」客戶端。

客戶端可以通過在流上發送另一條消息來進行響應。

http://www.grpc.io/docs/tutorials/basic/c.html