do {
printf("+++ ");
fflush(stdout);
memset(buffer, 0, MAX_SIZE);
fgets(buffer, MAX_SIZE, stdin);
buffer[strlen(buffer) - 1] = 0;
CHECK(0 <= mq_send(mq, buffer, MAX_SIZE, 0));
} while (strncmp(buffer, CMD_EXIT, strlen(CMD_EXIT)));这就是我要让客户端发送到服务器端的内容。我可以在服务器端做一些类似的事情吗?
发布于 2015-03-04 06:42:15
为了让两个进程(运行在同一台机器上)通过POSIX消息队列进行通信,每个进程都打开队列(其中“队列”由提供给mq_open()的双方同意的名称标识)。通过调用mq_receive(),任何打开队列的进程都可以检索发布到队列的任何消息。按照优先级顺序接收消息,并且在具有相同优先级的消息中从最老到最年轻。
将双向通信协议建立在单个消息队列上是很棘手的,但您可以使用两个消息队列,每个方向一个。尽管如此,这并不是该功能的预期用例。您可能会考虑一对FIFO是否与一对消息队列一样好,或者比一对消息队列更好。
https://stackoverflow.com/questions/28843239
复制相似问题