我有一个场景,其中多个进程(p1、p2 等)同时向消息队列 (cmd_msg_q) 发送命令(post)。
并且有一个接收进程 (R1) 从队列中检索消息并将适当的回复发送回另一个消息队列 ( response_msg_q ) 上的进程。
如何从接收进程回复以便将消息发送到特定进程?
(使用 Posix 消息队列。)这里进程 A、B 或 C 是动态创建的。最大限制为 20 个可以发送命令的进程。
最佳答案
在那种情况下,您必须在消息中集成一些发件人的 ID。另请注意,这些队列本质上是单向的,因此要发回消息,您需要创建一个队列,初始接收者将在该队列上发送消息,初始发送者将监听回复。
这比我最初想象的更难解释,所以让我们尝试使用示例。假设我们有程序 A B 和 C,其中 A 和 B 发送给 C。他们通过相同的队列这样做。 C 将知道谁发送了消息,因为发件人的标识嵌入在消息中,并将回复发布到 B 读取的队列或 C 读取的队列。
关于c - 消息队列 - 多个进程在 msgqueue 上发送 cmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910954/