使用网络连接进行应用程序间通信是不好的做法吗?

时间:2013-08-18 08:11:06

标签: networking tcp inter-process-communicat

我有两个需要在同一系统上运行的应用程序。

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

这种做法无论如何都不受欢迎吗?有没有其他选择(除了使用stdio,由于其他原因不可能)。

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

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

2 个答案:

答案 0 :(得分:0)

我刚刚使用Java在系统上工作过。而我正在寻找同样的问题。我对它没有多少经验。但我最终使用tcp连接进行通信,具有以下优势:

1)如果需要,可以在将来将不同的应用程序放在不同的服务器中。 2)申请完全独立。一个应用程序可能崩溃而不影响另一个。如果工作应用程序然后尝试连接它会收到错误,您可以处理它。

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

此致

答案 1 :(得分:0)

将TCP用于应用程序间通信是很常见的。

性能不应成为问题。 Sockets On Same Machine For Windows and Linux

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