#include #include #include #include #define MSGSZ 128 #ifdef NOT_USED /* * Declare the message structure. */ struct msgbuf { long mtype; char mtext[MSGSZ]; }; #endif /* NOT_USED */ main() { int msqid; key_t key; struct msgbuf sbuf, rbuf; /* * Get the message queue id for the * "name" 1234, which was created by * the server. */ key = 1234; if ((msqid = msgget(key, 0666)) < 0) { perror("msgget"); exit(1); } /* * We'll send message type 1, the server * will send message type 2. */ sbuf.mtype = 1; sprintf(sbuf.mtext, "Did you get this?"); /* * Send a message. */ if (msgsnd(msqid, &sbuf, strlen(sbuf.mtext) + 1, 0) < 0) { perror("msgsnd"); exit(1); } /* * Receive an answer of message type 2. */ if (msgrcv(msqid, &rbuf, MSGSZ, 2, 0) < 0) { perror("msgrcv"); exit(1); } /* * Print the answer. */ printf("%s\n", rbuf.mtext); exit(0); }