代码之家  ›  专栏  ›  技术社区  ›  elcuco

ipc:qt和mono进程之间的通信(在Linux上)

  •  1
  • elcuco  · 技术社区  · 15 年前

    我必须将qt4应用程序连接到mono应用程序。当前的概念验证使用网络套接字(这很好,我可以使用 nc 在命令行中)。

    但我愿意接受新的建议。我的选择是什么?

    编辑:

    原始的应用程序堆栈被分成两部分:服务器+客户机。客户应该展示图片和视频。由于我们发现在Mono中这是不可能的,因此我们将客户机分为两部分:

    服务器->客户端->GUI

    在最初的实现中,客户机+GUI是相同的应用程序。现在客户机在C(运行在mono上),而GUI是qt4。在qt4中重写客户机不是一个选项。

    现在,客户机和GUI之间的通信是通过本地主机使用TCP套接字完成的。我正在寻找更好的实现。

    编辑2: 当应用程序当前在Linux上运行时,我也希望在Windows上安装这个系统。客户机(有监听套接字…)在win32上工作,而qt4是跨平台的。

    2 回复  |  直到 10 年前
        1
  •  0
  •   Mikayla Hutchinson    15 年前

    你可以:

    1. 在你的(大概是C++)QT 4应用程序中嵌入单声道 Mono embedding API .
    2. 通过从GUI中公开C API来反转(1),这样您就可以使用P/Invoke从单代码控制它。
    3. 混合使用(1)和(2)-embed mono,使用embedding api调用它,让它使用p/invoke回调。
    4. 使用其他IPC机制,如Unix套接字或共享内存,这可能会更快,并且可以避免阻塞IP端口。

    我建议(3)。

        2
  •  -1
  •   Sharique    15 年前

    你可以使用Qyoto用C语言编写完整的项目,你不需要用两种不同的语言编写代码,用C语言访问本机API是一项非常复杂的任务,而且要花很多时间。

    你可以使用 Qyoto ,其中c绑定qt。有一个叫qyoto-addin的MonoDevelopment 'QyotoDevelop' .