Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java和c++;? 我最近发现了一个最好的用于java和C++之间通信的IPC协议。_Java_C++_Ipc - Fatal编程技术网

在java和c++;? 我最近发现了一个最好的用于java和C++之间通信的IPC协议。

在java和c++;? 我最近发现了一个最好的用于java和C++之间通信的IPC协议。,java,c++,ipc,Java,C++,Ipc,我搜索了SO以找到最好的协议,我发现socket是最好的方法,在SO中。但是我找不到任何关于它的优点和缺点的东西!所以我想知道这个协议的优点,也想知道其他协议和套接字的优点,以便为我的应用程序选择最好的协议 我的两个应用程序很可能运行在同一台机器上 更新我应该首先选择我的协议,然后我可以决定在哪个系统配置上运行它 最好的IPC方法实际上取决于您拥有的通信类型:消息传递、确保互斥执行、共享数据是各种IPC,但套接字并不是所有3种IPC的解决方案 考虑或提供您希望在应用程序之间传递的信息的形式。也许

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

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


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

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

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

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


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

您考虑的其他选项是什么?我希望您指的是“消息传递”,而不是“消息传递”,对吧?您的其他选项在简化您的生活方面没有比套接字更大的优势:在所有情况下,您最终都会编写一个二进制协议,区别在于它的传递机制(文件、消息或套接字)。如果你的选择是,比如说,RMI,那将是一个不同的故事;但是目前你正在选择一个同样困难的选项,所以我选择socket仅仅是为了它们的易用性和普遍性。命名管道是另一个选项,但这对支持socket的建议提出了质疑:我假设socket你指的是TCP?TCP相当简单,支持良好,在现代操作系统上高度优化,几乎可以在任何东西上使用。在我看来,这里没有太多的争议。另外,您可能对实际的消息编码感兴趣。