zoukankan      html  css  js  c++  java
  • 消息队列实现进程间通信

    服务器

    1. #include"sys/types.h" 
    2. #include"sys/msg.h" 
    3. #include"sys/ipc.h" 
    4. #define MSGKEY 75 
    5. struct msgform{ 
    6.     long mtype; 
    7.     char mtext[1000]; 
    8. }msg; 
    9.  
    10. void server() 
    11.     int msgid; 
    12.     msgid=msgget( MSGKEY, IPC_CREAT | 00666 );/*创建一个消息队列*/ 
    13.     if(msgid==-1) 
    14.     { 
    15.         printf("error! "); 
    16.         return
    17.     } 
    18.     do 
    19.     { 
    20.         if(msgrcv(msgid,(void*)&msg,1000,0,0)==-1) 
    21.         { 
    22.             printf("receive error! "); 
    23.             exit(0); 
    24.         } 
    25.         printf("recevied message succeed! "); 
    26.  
    27.     }while(msg.mtype!=1); 
    28.     if(msgctl(msgid,IPC_RMID,0)==-1) 
    29.     { 
    30.         printf("msgctl failed! "); 
    31.         exit(0); 
    32.     } 
    33.     exit(1); 
    34.  
    35. main() 
    36.     server(); 


    客户端

    1. #include"sys/types.h" 
    2. #include"sys/msg.h" 
    3. #include"sys/ipc.h" 
    4. #define MSGKEY 75 
    5. struct msgform 
    6.     long mtype; 
    7.     char mtext[1000]; 
    8. }msg; 
    9.  
    10. void client() 
    11.     int msgid,i; 
    12.     msgid=msgget(MSGKEY,IPC_CREAT|00666); 
    13.     if(msgid==-1) 
    14.     { 
    15.         printf("open error! "); 
    16.         return
    17.     } 
    18.     for(i=10;i>=1;i--) 
    19.     { 
    20.         msg.mtype=i; 
    21.         printf("client sent message! "); 
    22.         if(msgsnd(msgid,(void*)&msg,1000,0)==-1) 
    23.         { 
    24.             printf("send error! "); 
    25.             exit(0); 
    26.         } 
    27.         printf("send message succeed! "); 
    28.     } 
    29.     exit(1); 
    30.  
    31. main() 
    32.     client(); 

    本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/718898

  • 相关阅读:
    spring mongodb查询
    spring mongodb分页,动态条件、字段查询
    js导航下拉菜单
    spring mongodb增删改查操作
    组件
    vue的基本指令
    远程连接MongoDB数据库
    webpack工具、Vue、react模块化
    layui
    anaconda使用,jupyter notebook的使用方法
  • 原文地址:https://www.cnblogs.com/umgsai/p/3908222.html
Copyright © 2011-2022 走看看