#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <errno.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/stat.h>

#include <sys/msg.h>

#define MSG_FILE "server.c"

#define BUFFER 255

#define PERM S_IRUSR|S_IWUSR

struct msgtype{

    long mtype;       /*消息类型*/

    char sBuffer[BUFFER+1]; /*数据成员,可有多个*/

};



int main()

{

    struct msgtype msg;

    key_t  key;

    int    msgid;

    if(-1 == (key=ftok(MSG_FILE,'a')) )

    {

        printf("ftok error\n");

        exit(1);

    }

    msgid = msgget(key,PERM | IPC_CREATE |IPC_EXCL);/*返回一个消息队列的id*/

    if(-1 == msgid)

    {

        printf("msgget error\n");

        exit(1);

    }

    

    while(1)

    {

        msgrcv(msgid,&msg,sizeof(struct msgtype),,0);/*接受消息队列。long msgtype=1,呼应位于msgid消息队列中msgtype.mtype=1的第一个消息;msgflg = 0无消息是函数的动作,一般是0。*/

        printf("some one say:%s",msg.sBuffer);

        msg.mtype = 2;

        msgsend(msgid,&msg,sizeof(struct msgtype),0);/*msgflg = 0*/

    }

    return 0;



}





int main(int argc,char **argv)

{

    struct msgtype msg;

    key_t key;

    int msgid;

    key = ftok(MSG_FILE,'a');

    msgid = msgget(key,PERM);

    msg.mtype = 1;  /*设置1*/

    strcpy(msg.sBuffer,argv[1]);

    msgsend(msgid,&msg,sizeof(struct msgtype),0);

    memset(&msg,0,sizeof(struct msgtype));

    msgrev(msgid,&msg,sizeof(struct msgtype),,0);/*long msgtype=2*/

    printf("her say :%s",msg.sBuffer);

  return 0;

}

注意颜色对应关系,

还有,该队列    程序结束后并未删除,可用ipcrm删除。

收藏于 2012-12-23
来自于百度空间

最新文章

  1. python之路二十一
  2. td元素
  3. CE5 WiFi开关
  4. SQL总结(二)连表查询
  5. python(23)re函数:compile、match、search、findall
  6. noip赛前小结1
  7. 待研究之iOS硬件调研
  8. Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
  9. 开源库RxJava、ButterKnife学习记录
  10. Android 加载gif图片强大框架(支持预加载、缓存,还支持显示静态图片,一行代码全搞定)
  11. asp.net的&lt;% %&gt;特定用法
  12. 关于n维和n-1维欧式空间
  13. Spring Security之动态配置资源权限
  14. HAWQ配置之客户端访问
  15. python中os模块
  16. 数据在千万级别上进行全文检索有哪些技术?强大的大数据全文索引解决方案-ClouderaSearch
  17. [CEOI2017]Building Bridges
  18. 002_IO磁盘深入理解
  19. 在Linux下将TPC-H数据导入到MySQL
  20. POJ 1564 Sum It Up (DFS+剪枝)

热门文章

  1. OpenACC Hello World
  2. Mysql 开启Federated引擎以及使用
  3. mvc框架路由原理
  4. Mongodb 安装 和 启动
  5. WebConfig配置讲解
  6. vue 解决报错1
  7. mysql insert on duplicate key, update, ignore
  8. springMVC学习记录2-使用注解配置
  9. webserive学习记录5-拦截器完成登陆校验
  10. lua 中的点、冒号与self