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 + -
显示快捷键?