在 Java 和 C++ 之间使用 Socket for IPC 的利弊是什么?

what is pros and cons of using Socket for IPC between java and c++?

本文关键字:IPC 是什么 for Socket Java C++ 之间      更新时间:2023-10-16

我最近被迫找到一种最适合Java和C ++之间通信的IPC协议。

搜索了SO以找到最佳协议,我发现套接字是SO中最好的方法。但是我找不到关于插座的优缺点的任何东西!所以我想知道这个协议的优点,也想知道其他协议与套接字的优点,以便为我的应用程序选择最佳协议。

我的两个应用程序很可能在同一台计算机上运行。

更新我应该首先选择我的协议,然后我可以决定在哪个系统配置上运行它。

最好的 IPC 方法实际上取决于您拥有的通信类型:消息传递、确保相互排他性执行、共享数据是各种 IPC,但套接字并不是所有 3 种的解决方案。

考虑或提供您希望在应用程序之间传递的信息形式的信息。也许你发现了一个典型的场景(比如生产者-消费者问题)。

如果你有一个消息传递问题,原则上与老式的TCP服务相当,套接字是一个好主意,因为它们经过充分测试并且易于调试;它们提供完全解耦,但与管道相比,本地运行没有缺点,因为内核可以有效地阻止一个应用程序(发送方或接收方)。

套接字

可以是UDP,TCP或Unix套接字。在任何情况下,您都不需要网卡用于带套接字的本地IPC。