#include <stdlib.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define MSG_SIZE 128#define C2S 1L#define S2C 2Lstruct msgbuf { long mtype; char mtext[MSG_SIZE];};int main(){ int qid; key_t key; int ret; struct msgbuf buf; key=ftok("/home", ‘a’); if (key<0) { perror(“ftok error”); exit(1); } qid=msgget(key, IPC_CREAT|0666); if (qid<0) { perror(“msgget error”); exit(1); } while (1) { printf(“Client:(客户端要发送的) “); buf.mtype = C2S; scanf(”%s”, buf.mtext); msgsnd(qid, &buf, MSG_SIZE, 0); msgrcv(qid, &buf, MSG_SIZE, S2C, 0); printf(“Server:(客户端收到了) %s\n”, buf.mtext); } return 0;}
2021-06-08
最新推荐文章于 2021-08-06 14:28:27 发布
该代码示例展示了如何利用POSIX消息队列在C语言中建立客户端-服务器通信。通过ftok和msgget创建消息队列,然后使用msgsnd和msgrcv进行消息的发送和接收。程序持续运行,允许客户端不断向服务器发送消息并接收回应。
摘要由CSDN通过智能技术生成