【问题标题】:Is it bad practice to use a network connection for inter-application communication?使用网络连接进行应用程序间通信是不好的做法吗?
【发布时间】:2013-08-18 08:11:05
【问题描述】:

我有两个应用程序需要在同一系统上相互通信。

我一直在使用一种非常奇怪的做法,即在两个应用程序之间打开 TCP COM 通道进行通信。

无论如何,这种做法是否令人不悦?有没有其他选择(除了使用stdio,其他原因不能)。

是否对最大传输速率和/或所涉及的任何延迟有限制(与管道 stdio 相比)?

我正在为服务器和客户端使用本地 (127.0.0.1) 地址,是否可以保证连接保持在本地计算机本身内,或者它是否可以在返回到自身之前中继最近的路由器并连接网络card 是否会影响连接的属性?

【问题讨论】:

    标签: networking tcp inter-process-communicat


    【解决方案1】:

    不久前,我使用 Java 开发了一个系统。我正在寻找同样的问题。我没有太多经验。但我最终使用 tcp 连接进行通信,具有以下优点:

    1) 如果需要,将来可以将不同的应用程序放在不同的服务器中。 2) 应用程序是完全独立的。一个应用程序可能会崩溃而不会影响另一个应用程序。如果正在运行的应用程序尝试连接它会出现错误,您可以处理它。

    我看到它用于许多其他类型的应用程序。所以我选择了它,它工作正常。但是您必须小心处理网络错误和 IO 错误,并在完成连接后关闭所有打开的套接字。我只是从客户端关闭套接字,所以我最终在服务器中有许多 CLOSE_WAIT 端口。

    问候,

    【讨论】:

    • 是的。我明白你的意思,我也在想同样的事情。在我想到它的那一刻,我认为这是一个巧妙的想法......但现在考虑它......我从未真正考虑过它可能的缺点。嗯...感谢您让我知道其他人也这样做了,但恐怕您没有具体回答我的问题。
    【解决方案2】:

    使用 TCP 进行应用程序间通信是很常见的。

    性能应该不是问题。 Sockets On Same Machine For Windows and Linux

    您应该考虑安全性。如果机器上的另一个用户连接到端口会发生什么,应用程序将如何进行身份验证等。

    【讨论】:

    • 嗯……它不是一个真正需要高安全性的应用程序……反正两个应用程序同时启动……所以“攻击”的窗口非常非常小。
    猜你喜欢
    • 2012-09-26
    • 2018-11-19
    • 2018-08-26
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2019-04-28
    相关资源
    最近更新 更多