use*_*838 3 c linux ipc message-queue
我希望服务器向客户端发送一些消息,并让客户端确认它。我被分配了这个任务。我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个?
谢谢 :)
是的,可以使用 sysV 消息队列来做到这一点,从您之前的问题来看,您正在使用该队列。您可以使用msgtype  消息格式中嵌入的字段来指定消息的类型,并且适当的接收进程必须在其msgrcv调用中指定该 msgtype 并处理该类型的消息。
因此,例如,服务器可以写入 msgtype = 1,客户端可以 ack msgtype 2。
请注意,这需要您真正考虑您的消息传递方案 -msgrcv仔细阅读文档,以便您了解如何读取消息的选项 - 以及为什么要这样做。如果你做得不对,它就无法很好地扩展——不是性能方面,而是编程复杂性方面——而且很容易让你的程序陷入自己追逐自己尾巴的境地。
这是否比仅使用两个队列更聪明,我将留给您决定。
请注意,您确实无法使用 POSIX 消息队列来做到这一点。