svmsg_s.cpp

来自「在Linux使用systemV测试消息」· C++ 代码 · 共 60 行

CPP
60
字号
#include <stdio.h>#include <stdlib.h>
#include <unistd.h>#include <string.h>#include <errno.h>
#include "./svmsg.h"#include "./svmsg.cpp"int main(){
	int iMesgID;
	int ret,flag;	int i,iBytes;
	struct Mesg_Struct strupMesg_s,strupMesg_c;
	printf("==== Ren Message Queue Server ====\n");

	flag=0;
	iMesgID=Mesg_get(MSQ_NET_KEY,IPC_CREAT|IPC_EXCL);	if(iMesgID==-1){
		printf(".... Create message queue Error:%s! ....\n",strerror(errno));		return -1;
	}	memset(&strupMesg_s,0,sizeof(Mesg_Struct));	memset(&strupMesg_c,0,sizeof(Mesg_Struct));	strupMesg_c.iMesgType=MSQ_METER_TYPE;	strupMesg_s.iMesgType=MSQ_NET_TYPE;
	strupMesg_s.iMesgLen=10;	for(i=0;i<strupMesg_s.iMesgLen;i++)		strupMesg_s.cMesgData[i]=i;
	while(1){		if(flag!=0x5a){
			flag=0x5a;
			iBytes=Mesg_send(iMesgID,&strupMesg_s,IPC_NOWAIT);			if(iBytes==-1)
				printf("....svmsg_s: Send Message Error ....\n");			sleep(2);
		}
		iBytes=Mesg_recv(iMesgID,&strupMesg_c,IPC_NOWAIT);		if(iBytes<=0){
			printf("....svmsg_s: No Received Message ....\n");			sleep(3);
		}
		else{			printf("....svmsg_s: Received Message:%d ....\n",iBytes);			for(i=0;i<strupMesg_c.iMesgLen;i++)				printf("%x ",strupMesg_c.cMesgData[i]);			printf("\n");
			flag=0;
		}	}

	Mesg_ctrl(iMesgID,IPC_RMID,NULL);
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?