1

我有问题。

我有一个进程,假设它是一个客户端,还有一个称为服务器的进程。客户端和服务器通过同一个队列相互通信。假设客户端向服务器发送消息(请求),因此服务器对其进行处理并应将消息发送回客户端确认或失败。假设确认有long type = 1500101,失败有long type = 1500102

是否有可能(在 C 中使用 msgrcv)只等待这两种类型的消息(客户端)?如果不是,那么实现这种机制的最佳方法是什么?

4

2 回答 2

1

不,您无法接收多种消息类型。它要么是全部,要么只是一种类型,或者是除了单一类型之外的全部。

可以做的是msgrcvIPC_NOWAIT标志调用两次,每种类型一次。

于 2013-02-20T10:40:33.487 回答
0

客户端和服务器通过同一个队列相互通信。

我建议客户端和服务器有单独的单独队列。然后服务器可以接收到它的队列中的所有消息(使用 msgtype 为 0)。它可以根据收到的消息的 msgtype 进行切换并执行必要的操作。

于 2013-02-20T11:54:08.647 回答