/*接收消息--单项的接收消息*/

原创 2007年10月10日 21:15:00


              /*接收消息--单项的接收消息*/

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<sys/msg.h>           //头文件信息
                              // 系统定义的BUFSIZ的值为8192     

struct my_msg_st               //定义一个结构体名为my_msg_st  
{
    int my_msg_type;           //结构体成员,定义一个名为my_msg_type为整型数据
    char msg_text[BUFSIZ];     //结构本成员,定义一个字符数组类型my_text[512]
};

int main(int argc, char *argv[])   //主函数,包含两个参数
{
    int running=1;                 //定义running为整型数据,给running赋初值为1
    int msgid;                     //定义msgid为整型数据
    struct my_msg_st some_data;    //定义了一个结构体变量名为some_data
    int msg_to_receive=0;          //整型msg_to_reseive赋初值为0

     /*下面:如果可要创建一个Key值为12345,且户权限为0666的消息队列,如果创建失败为-1,则执行下面*/
    if((msgid=msgget((key_t)12345,0666|IPC_CREAT))==-1)
    {
 perror("msgget");                   //当msgid等于-1时则打印错误的信息
 exit(EXIT_FAILURE);                 //异常退出
    }

    while(running)                   //当running的值为"真"时
    {
        /*下面:(msg_to_receive优先权)接收最大为BUFSIZ大的结构体变量some_data的消息队列msgid*/
 if(msgrcv(msgid,(void *)&some_data,BUFSIZ,msg_to_receive,0)==-1)
 {
     perror("msgrcv");                           //打印错误的信息
     exit(EXIT_FAILURE);                         //异常退出
 }
 printf("receiver mssage:%s",some_data.msg_text); //打印接受到的字符串
 if(strncmp(some_data.msg_text,"end",3)==0)     //当end这3个字符复制到buffer中时,执行下面
     running=0;                                //把零赋给running.
    }

    if(msgctl(msgid,IPC_RMID,0)==-1)    //从系统中删除msgid这个消息队列,
    {
 fprintf(stderr,"msgctl(IPC_RMID)failed/n"); //打印错误的信息
 exit(EXIT_FAILURE);             //异常退出
    }
    return 0;          //返回零  
}
 

ActiveMQ 消息接收方式

第二部分: ActiveMQ 消费者接收消息两种方式消息生产者public class JMSProducer {private static final Logger log=LoggerFacto...
  • zyp_yun
  • zyp_yun
  • 2017年01月12日 14:31
  • 1766

spring消息之使用jms发送和接收消息

自学这个地方,遇到了许多莫名其妙的错误,也是对自己搞了一整天的一个总结,免得后面又忘记。 (1)首先,发送消息的话应该有消息代理这里我们在spring中搭建消息代理使用ActiveMQ。 在htt...
  • arrogant_boom
  • arrogant_boom
  • 2016年11月29日 11:10
  • 954

微信公众平台开发【接收消息】接收普通消息

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。服务器在解析此数据包,获取相关参数的值从而做出回复。接收普通消息主要包括:文本消息、图片消息、语音消息、...
  • oldinaction
  • oldinaction
  • 2015年08月26日 13:06
  • 3681

TCP 接收连接及消息的收发

我们在网络编程时,一般过程是创建套接字,然后绑定端口,然后开始监听,那么这个所谓的监听数量为什么一般很小,但是能接收很多连接,恩,后来才知道不在一个过程上,下面先从listen函数看起。listen(...
  • ythunder
  • ythunder
  • 2016年12月27日 16:48
  • 888

java kafka消息的发送与接收

java kafka消息的发送与接收                消息队列在java EE级开发是很常用到的工具之一,在众多消息队列当中,active mq与kafka相对比较受开发者的喜...
  • u013144287
  • u013144287
  • 2017年07月28日 19:24
  • 3307

MFC 消息响应与消息处理过程

WPARAM 和 LPARAM,消息响应机制 wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数: 一个是WORD类型的16位整型变量;另...
  • feilongzaitianhehe
  • feilongzaitianhehe
  • 2015年08月24日 15:32
  • 1135

使用socket接收服务器推送的消息

项目中要实现在APP中接收服务端推送过来的json数据,并解析显示到用户界面。要实现此功能就必须和服务端保持长连接. 下面就我的socket实现的长连接,接收到消息后解析再展示给用户的案例/**ha...
  • mingtianguohou100
  • mingtianguohou100
  • 2017年01月10日 20:29
  • 1917

微信六大接收接口(接收普通消息)

1.文本接口 说明:如果用户发送过来的XML数据中,MsgType节点为'text'就代表用户发送的是文本消息。 接口开发步骤: 1>在接收是,接收MsgType节点 // 接收用户消息类型...
  • u014034079
  • u014034079
  • 2016年11月10日 15:32
  • 1205

微信开发四 接受用户普通消息与回复消息

接收用户普通消息可以在官方文档中直接看                                     普通消息分为:                               接受...
  • aojiancc2
  • aojiancc2
  • 2017年04月23日 15:43
  • 549

smack发送和接收信息

/** *发送消息 *@param con 用户连接对象 *@param user 用户JID *@param msg 发送内容 */ @Ov...
  • yezis
  • yezis
  • 2014年09月04日 13:56
  • 1069
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: /*接收消息--单项的接收消息*/
举报原因:
原因补充:

(最多只允许输入30个字)