1

問題があります。

私にはプロセスがあります。それはクライアントであり、サーバーと呼ばれるプロセスです。クライアントとサーバーは、同じキューによって相互に通信します。クライアントがサーバーにメッセージ (リクエスト) を送信すると、サーバーはそれを処理し、確認または失敗のメッセージをクライアントに送り返す必要があります。long type = 1500101確認には があり、失敗にはがあるとしましょうlong type = 1500102

(C で msgrcv を使用して) これら 2 種類のメッセージ (クライアント) のみを待機することは可能ですか? そうでない場合、そのようなメカニズムを実行する最善の方法は何ですか?

4

2 に答える 2

1

いいえ、複数の種類のメッセージを受信することはできません。それは、すべてまたは単一のタイプ、あるいは単一のタイプを除くすべてのいずれかです。

できることは、フラグを使用して、タイプごとに1回ずつ、2回呼び出すことです。msgrcvIPC_NOWAIT

于 2013-02-20T10:40:33.487 に答える
0

クライアントとサーバーは、同じキューによって相互に通信します。

クライアントとサーバーに個別のキューを用意することをお勧めします。その後、サーバーはそのキューで受信するすべてのメッセージを受信できます (msgtype を 0 として使用)。受信したメッセージの msgtype に基づいて切り替え、必要なアクションを実行できます。

于 2013-02-20T11:54:08.647 に答える