2016-02-05 429 views
1

我正在計劃一個程序的網絡通信系統。該程序分爲一個客戶端和一個服務器類,但如果它們太大,我可能會將它們分成單獨的程序,而其他任何程序都無法阻止它。目前,所有的網絡通信都是在服務器上調用set和get函數(其中大約500個,我希望在典型操作中,每8個客戶端每秒產生大約500-1,600個請求) 。通過網絡調用函數的最佳方式是什麼?

我目前的計劃是使用基本的網絡API將機器代碼啓發的Opcode作爲字符串以及幾個字節的參數發送到服務器,並讓服務器選擇函數並使用大量的參數解釋參數switch聲明。

但是,如果有數百個可能的函數調用,將會導致A)難於閱讀,並且B)執行速度慢。我也關心大型交換機語句的性能。

鑑於此,任何人都可以確認這是通過網絡實現函數調用的最佳方式,還是告訴我是否有更好的方法。我很喜歡一個神奇的API,允許做類似x = callServerFunc(server, function, parameter1...)的事情,但我的搜索還沒有找到這樣一個庫。

+0

我想你想要搜索的是「C++ RPC庫」 – Brian

+0

主要基於觀點:「許多優秀的問題基於專家經驗產生一定程度的意見,但對這個問題的回答往往幾乎完全基於意見,而不是事實,參考或具體的專業知識。「 –

回答

1

您可以從頭開始編寫代碼。隨意如何做到這一點。

或者您可以使用許多現成的成熟技術之一。只需谷歌CORBA,DCOMXPCOM等。你可以看看Remote call的共同點。或者考慮使用不同數據格式的現有網絡技術。這只是一個起點。這些技術是成熟的但重量級的。你需要一些知識和實踐來開始他們。

+0

還有SUN-RPC。 – EJP

+0

如果您查看關於RPC的wiki頁面,有這麼多的選擇。我無法在這裏列出它們。 –

相關問題