0

我正在为使用 C++ 的专业用户编写桌面应用程序。我当前的设计依赖于第三方 C++ 组件,其 API 基于 TCP/IP。要集成这个组件,可能需要修改它以用传统的 C++ API 替换网络代码。

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

我对这种环回方法有两个担忧。谁能减轻或证实我的恐惧?

可靠性和性能 环回连接可能会失败、被防病毒软件阻止或拦截。像这样:环回连接在用户的上下文中工作,但不能从本地系统帐户工作

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

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

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

4

1 回答 1

1

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

性能:有一些性能损失。目前的 CPU 能力并不大。对于大多数应用程序来说,它应该是可以接受的。

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

环回连接被广泛使用(java 使用它进行互通,命名使用它进行主服务控制等)

于 2012-02-10T13:00:28.377 回答