2012-02-10 35 views
0

我正在爲使用C++的專業用戶編寫桌面應用程序。我目前的設計依賴於第三方C++組件,其API基於TCP/IP。要集成這個組件,可能需要修改它以使用傳統的C++ API替換網絡代碼。桌面應用環回連接 - 可靠和安全?

如果我可以讓組件保持未修改狀態並通過網絡以預期的方式與它進行通信,那將會容易得多。要做到這一點,我需要運行該組件作爲服務器監聽一些高端口的環回連接。

我對這種環回方法有兩個問題。任何人都可以減輕或確認我的恐懼嗎?

可靠性和性能 環回連接可能會失敗,被阻止或被防病毒軟件攔截。事情是這樣的:Loopback connections working in user's context but not working from Local System account

安全 我不是太在意別人嗅探我回送數據包,但我不希望我的服務器成爲一個安全風險本身。讓一個進程監聽某個高端端口是否有風險?

許多桌面應用程序是否像這樣操作?

我最初在Windows上開發,但將來可能會遷移到Mac和Linux,所以這個問題適用於所有常見的桌面操作系統。

+0

這是什麼第三方組件的性質是什麼?取決於它是什麼,如果它沒有某種不涉及TCP/IP的「本地」版本,我會感到驚訝。詢問您的供應商是否有非聯網版本。 – 2012-02-10 10:44:28

+0

我能描述它的最好方式是「有點像網絡服務器」。 – paperjam 2012-02-10 10:50:18

回答

1

可靠性:如果組件本身可靠,那麼聽回送接口就沒有問題。如果組件不可靠,那麼最好通過回送接口與它交談,而不是直接調用它的功能。您可以輕鬆處理斷開連接並重新啓動組件以繼續工作,但是如果您鏈接到組件並且組件將失敗 - 您的應用程序也會失敗。

性能:有一些性能損失。目前的CPU功耗並不大。對於大多數應用程序應該可以接受。

安全性:組件應綁定到localhost地址以避免安全問題。但是具有足夠訪問級別的本地三維方軟件(病毒)軟件可以攔截甚至修改通信流。其他任何溝通方式都一樣。

迴環連接應用廣泛的(Java使用它互通,命名用它的主服務控制等)