首页 > 代码库 > msgrcv,msgsnd进程通信,消息的发送和接收

msgrcv,msgsnd进程通信,消息的发送和接收

//进程通信,消息的发送和接收//client.c#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <errno.h>#include <malloc.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/ioctl.h>#include <stdarg.h>#include <fcntl.h>#include <fcntl.h>#define MSGKEY 75struct msgform{    long mtype;    char mtext[1000];}msg;int msgqid;void client(){    int i;    msgqid=msgget(MSGKEY,0777);    for(i=10;i>=1;i--)    {        msg.mtype=i;        printf("(client)sent\n");        msgsnd(msgqid,&msg,1024,0);    }    exit(0);}main(){    client();}//进程通信,消息的发送和接收//server.c#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <errno.h>#include <malloc.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/ioctl.h>#include <stdarg.h>#include <fcntl.h>#include <fcntl.h>#include <sys/msg.h>#include <sys/ipc.h>#define MSGKEY 75struct msgform{    long mtype;    char mtext[1000];}msg;int msgqid;void server(){    msgqid=msgget(MSGKEY,0777|IPC_CREAT);    do    {        msgrcv(msgqid,&msg,1030,0,0);        printf("(server)receive\n");    }while(msg.mtype!=1);    msgctl(msgqid,IPC_RMID,0);    exit(0);}main(){    server();}

 

msgrcv,msgsnd进程通信,消息的发送和接收