Python和java之间的IPC(进程间通信)

首先,稍微解释一下我为什么要问这个问题:我正在编写一个python程序(带有wxPython gui),它需要从python调用Java AWT程序并从中提取数据。我在Windows上有一个进程内工作解决方案。我在OSX上也有一个进程内解决方案,只要我无外设运行Java应用程序。不幸的是,我没有找到在OSX上的同一进程中运行两个GUI的合理解决方案,因为AWT和WX都想要第一个线程,并且无法共享wx消息循环。

我想做的是在与我的Python程序分开的进程中启动Java程序,并建立一个管道或队列或其他东西来回传递数据(特别是字节数组)。

我非常感谢您的任何建议,甚至是朝着正确方向的推动,因为我对IPC的经验很少。


答案 1

我试图使用管道编写解决方案代码,但似乎它们不适合来回发送多条消息,并附加潜在的大量数据。相反,它们似乎是打开一个运行,响应和死亡的“工人”风格程序的理想选择。

在研究套接字编程时,我在这里找到了一个很棒的资源:https://web.archive.org/web/20080913064702/http://www.prasannatech.net/2008/07/socket-programming-tutorial.html

本教程介绍了用4种语言编写的简单聊天程序的TCP和UDP变体。我最终使用并修改了TCP Java客户端和Python服务器。


答案 2