zoukankan      html  css  js  c++  java
  • 消息队列实现接收发送的例子

    msg消息队列,实线不同进程之间的通信,主要依靠key来识别:

    发送端

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <sys/types.h>
     5 #include <sys/msg.h>
     6 #include <unistd.h>
     7 #include <time.h>
     8 #include <sys/ipc.h>
     9 struct msgmbuf{
    10     int mtype;
    11     char mtext[40];
    12 };
    13 
    14 int main()
    15 {
    16     int ret = -1;
    17     int msg_flags,msg_id;
    18     key_t key;
    19     struct msqid_ds msg_info;
    20     struct msgmbuf msg_mbuf;
    21     key = 1024;
    22     msg_flags = IPC_CREAT;
    23 
    24     while(1)
    25     {
    26         msg_id = msgget(key,msg_flags|0666);
    27         if(-1==msg_id)
    28         {
    29             printf("create message failed!
    ");
    30             return 0;
    31         }
    32         printf("Input message to send:");
    33         scanf("%s",msg_mbuf.mtext);
    34         getchar();
    35         msg_mbuf.mtype = 10;
    36         ret = msgsnd(msg_id,&msg_mbuf,sizeof(struct msgmbuf),0);
    37         if(-1==ret)
    38         {
    39             printf("send message failed!
    ");
    40         }
    41     
    42     }
    43     return 0;
    44 }

    接收端:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <sys/types.h>
     5 #include <sys/msg.h>
     6 #include <unistd.h>
     7 #include <time.h>
     8 #include <sys/ipc.h>
     9 struct msgmbuf{
    10         int mtype;
    11         char mtext[40];
    12     };
    13 
    14 int main()
    15 {
    16     int ret = -1;
    17     int msg_flags,msg_id;
    18     key_t key;
    19     struct msgmbuf msg_mbuf;
    20     key =1024;
    21     msg_flags = IPC_CREAT;
    22     while(1)
    23     {
    24         msg_id = msgget(key,msg_flags|0666);
    25         if(-1==msg_id)
    26         {
    27             printf("create message failed!
    ");
    28             return 0;
    29         }
    30     
    31         ret = msgrcv(msg_id,&msg_mbuf,sizeof(struct msgmbuf),0,0);
    32         if(-1==ret)
    33         {
    34             printf("receive message failed!
    ");
    35         }
    36         else
    37         {
    38             printf("receive message successful!message[%s]
    ",msg_mbuf.mtext);
    39         }
    40 
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    tr 删除换行
    ImportExcelUtil 导入excel表格数据转换为对象存储
    苹果手机(ios)拍照上传图片旋转90度问题---java后台处理
    event兼容性解决
    event兼容性解决
    [CodeVS4919]线段树练习4
    [CodeVS4919]线段树练习4
    [CodeVS4919]线段树练习4
    Cocos2D-X2.2.3学习笔记12(瞬时动作)
    Cocos2D-X2.2.3学习笔记12(瞬时动作)
  • 原文地址:https://www.cnblogs.com/wystan/p/4593060.html
Copyright © 2011-2022 走看看