消息队列客户端服务器,基本的Unix服务器客户端IPC(消息队列)问题

我正在处理一个问题,这意味着一个基本的运行服务器客户端(之前完成一个)。问题是我运行的服务器比我运行的客户端。我的味精阙创建我nboth客户端需要我的字符作为输入发送它,我得到确认打印,但我的服务器msgrcv没有响应。基本的Unix服务器客户端IPC(消息队列)问题

SC

#include

#include

#include

#include

#include

#include

#include "struc.h"

int main(){

int qt;

struct msg m;

qt = msgget(1271,IPC_CREAT|IPC_EXCL|0600);

if(qt < 0){ perror("Error MSGGET()\n");}

printf("msg queue created!\n");

if(msgrcv(qt,&m,sizeof(struct msg),0,0)<0){

perror("Msg recive error");

}

printf("msg recived!\n");

msgctl(qt,IPC_RMID,NULL);

return 0;

}

CC

#include

#include

#include

#include

#include

#include

#include "struc.h"

int main(){

int qt;

struct msg m;

qt = msgget(1271,0);

if(qt < 0){ perror("~~~ Error MSGGET()\n");}

printf("msg created!\n");

printf("Enter one char: !\n");

scanf("%c",&m.c);

msgsnd(qt, &m,sizeof(struct msg),0);

printf("msg sent!\n");

return 0;

}

struc.h

struct msg{

long mtype;

// matrix M;

char c;

};

(用户自己创建的3个文件,你的CNA测试。任何想法是值得欢迎的,也许我错过了什么)

+1

m.mtype的价值是什么?目前尚未定义。如果碰巧是0或负值,则msgsend将失败。 –

+0

谢谢。这是忘记初始化mtype的问题。 –

+0

是的,我发现在发布前8分钟发现错误。自从90年代中后期以来,还没有使用过ipc.h,因此在发布任何内容之前,我必须阅读手册页来清理我的知识。 –

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值