桌面应用程序环回连接-可靠且安全? 我正在用C++编写专业用户的桌面应用程序。我目前的设计依赖于第三方C++组件,其API基于TCP/IP。集成这个组件可能需要修改它来取代传统的C++ API的网络代码。

桌面应用程序环回连接-可靠且安全? 我正在用C++编写专业用户的桌面应用程序。我目前的设计依赖于第三方C++组件,其API基于TCP/IP。集成这个组件可能需要修改它来取代传统的C++ API的网络代码。,c++,networking,tcp,desktop-application,loopback,C++,Networking,Tcp,Desktop Application,Loopback,如果我可以不修改组件,并以它期望的方式通过网络与它通信,那会容易得多。要做到这一点,我需要将该组件作为服务器运行,在一些高端端口上侦听环回连接 我对这种环回方法有两个顾虑。有人能消除或证实我的恐惧吗 可靠性和性能 环回连接可能会失败、被防病毒软件阻止或拦截。大概是这样的: 安全性 我不太担心有人嗅探我的环回数据包,但我不希望我的服务器本身成为安全隐患。让进程侦听某个高端口是否有风险 很多桌面应用程序都是这样运行的吗 我最初是在Windows上开发的,但将来可能会转向Mac和Linux,所以这个问

如果我可以不修改组件,并以它期望的方式通过网络与它通信,那会容易得多。要做到这一点,我需要将该组件作为服务器运行,在一些高端端口上侦听环回连接

我对这种环回方法有两个顾虑。有人能消除或证实我的恐惧吗

可靠性和性能 环回连接可能会失败、被防病毒软件阻止或拦截。大概是这样的:

安全性 我不太担心有人嗅探我的环回数据包,但我不希望我的服务器本身成为安全隐患。让进程侦听某个高端口是否有风险

很多桌面应用程序都是这样运行的吗


我最初是在Windows上开发的,但将来可能会转向Mac和Linux,所以这个问题适用于所有常见的桌面操作系统。

可靠性:如果组件本身是可靠的,那么监听环回接口就没有问题。若组件不可靠,那个么最好通过环回接口和它对话,而不是直接调用它的函数。您可以轻松地处理断开连接并重新启动组件以继续工作,但如果您链接到组件,组件将失败-您的应用程序也将失败

性能:有一些性能的惩罚。用目前的CPU功率来说不是很大。对于大多数应用来说,它应该是可以接受的

安全性:组件应该绑定到本地主机地址以避免安全问题。但具有足够访问级别的本地三维方软件(病毒)可以拦截甚至修改通信流。任何其他通信方法也是如此


环回连接被广泛使用(java将其用于内部通信,命名为用于主服务控制等)

此第三方组件的性质是什么?取决于它是什么,如果它没有某种不涉及TCP/IP的“本地”版本,我会感到惊讶。询问您的供应商是否有非网络版本。我能描述它的最好方式是“有点像web服务器”。