我希望服务器向客户端和客户端发送一些消息来确认它。我得到了这个任务。我可以在C linux中使用单个消息队列来完成它,或者我需要创建两个??
谢谢:)
答案 0 :(得分:2)
是的,可以使用sysV消息队列执行此操作,从您查看之前的问题开始,您正在使用这些队列。您可以使用消息格式中嵌入的msgtype
字段来指定它是什么类型的消息,并且相应的接收过程必须在其msgrcv
调用中指定msgtype并处理该类型的消息。
因此,例如,服务器可以写入msgtype = 1,客户端可以写入msgtype 2.
请注意,这需要您真正考虑您的消息传递方案 - 仔细阅读msgrcv
文档,以便了解如何读取消息的选项 - 以及您为什么这样做。如果你做得不对,它就不能很好地扩展 - 不是在性能上,而是在编程的复杂性 - 并且很容易让你自己处于你的程序正在追逐自己的尾巴的情况下。
这是否比只使用两个队列更聪明我将留给你决定。
请注意,您实际上无法使用POSIX消息队列执行此操作。
答案 1 :(得分:0)
不,您必须使用两个消息队列