我有一个场景,多个进程(p1、p2等)同时向一个消息队列(Cmd_msg_q)发送一个命令(post)。
并且存在一个接收器进程(R1),其从队列中检索msg并将适当的应答发送回另一msg队列( response_msg_q )上的进程。
如何从接收方进程进行回复,以便将消息发送到该特定进程?
(使用Posix消息队列。)在这里,进程A、B或C是动态创建的。最大限制是20个进程,可以发送命令。
发布于 2014-04-07 19:31:41
在这种情况下,您必须在消息中集成发送者的一些ID。还要注意,这些队列本质上是单向的,因此要发回消息,您需要创建一个队列,初始接收者将在该队列上发送消息,初始发送者将侦听回复。
这比我最初认为的更难解释,所以让我们试着用and示例。假设我们有程序A、B和C,其中A和B发送到C。它们通过相同的队列发送。C将知道谁发送了消息,因为发送者的标识嵌入在消息中,并将回复发送到B读取的队列或C读取的队列。
发布于 2014-04-07 22:51:44
POSIX消息队列几乎需要为每个进程建立第二个队列,为此有一个很好的建立模式。
https://stackoverflow.com/questions/22910954
复制相似问题