Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有问题。
我有一个进程,假设它是一个客户端,还有一个称为服务器的进程。客户端和服务器通过同一个队列相互通信。假设客户端向服务器发送消息(请求),因此服务器对其进行处理并应将消息发送回客户端确认或失败。假设确认有long type = 1500101,失败有long type = 1500102。
long type = 1500101
long type = 1500102
是否有可能(在 C 中使用 msgrcv)只等待这两种类型的消息(客户端)?如果不是,那么实现这种机制的最佳方法是什么?
不,您无法接收多种消息类型。它要么是全部,要么只是一种类型,或者是除了单一类型之外的全部。
你可以做的是msgrcv用IPC_NOWAIT标志调用两次,每种类型一次。
msgrcv
IPC_NOWAIT
客户端和服务器通过同一个队列相互通信。
我建议客户端和服务器有单独的单独队列。然后服务器可以接收到它的队列中的所有消息(使用 msgtype 为 0)。它可以根据收到的消息的 msgtype 进行切换并执行必要的操作。