gpt4 book ai didi

linux - 一种在 linux 中的应用程序之间进行通信的方法

转载 作者:太空狗 更新时间:2023-10-29 11:22:37 26 4
gpt4 key购买 nike

我目前正处于计划阶段,需要帮助。我将使用插入各种模块(i2C、USB 等)的 rasberry pi,这些模块可以是任何东西,例如用于测量温度、风速、方向等的模块。

想法是让每个模块运行自己的守护进程,这个守护进程将根据请求向主程序提供数据,或者主程序可以请求守护进程重新启动。

所有这一切都将发生在树莓派上,而不是通过任何类型的网络。

我的问题是在主程序和守护进程之间使用什么进行通信。我一直在阅读有关使用 dbus 的信息,但有很多人说将其用作最后的手段。

我已经研究了一段时间,但想不出任何其他(也许更简单)的方法。

附带说明一下,将它们分开的想法是因为如果任何模块出现问题,我可以轻松地重新启动它而不影响主程序。

最佳答案

研究 ZeroMQ。它是类固醇的 socket 。

它很容易上手,非常适契约(Contract)一进程中的线程之间或不同进程之间的通信。 ZMQ 消除了多线程和进程通信通常意味着的许多令人头疼的问题。

只需在您的“主程序”中使用 socket.bind,并在您的客户端中使用 socket.connect

在您的情况下,听起来您可能对 Pub-Sub 模式感兴趣,服务器订阅,客户端发布,这意味着它是一种单向通信。

否则,您可能对 Req-Router-Dealer-Rep 模式感兴趣。

http://www.zeromq.org/

关于linux - 一种在 linux 中的应用程序之间进行通信的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com