Mosquitto子客户端测试代码给出了分段错误

时间:2015-10-14 11:07:30

标签: mqtt mosquitto

我正在研究mosquitto v1.4.4。我在Raspberry Pi上安装了它,应用程序运行良好。我在tar的test文件夹中尝试了MQTT示例程序(msgsps_sub.c)。当我编译并运行时 msgsps_sub.c程序子客户端能够连接到代理并订阅主题。但是当我使用发布者发送消息时,上面的程序(msgsps_sub.c)会因分段错误而崩溃。

我觉得问题出在my_message_callback(struct mosquitto * mosq,void * obj,const struct mosquitto_message * msg) 功能。

原始代码是:

    void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg)
    {
        if(message_count == 0){
        gettimeofday(&start, NULL);
    }

    fwrite(msg->payload, sizeof(uint8_t), msg->payloadlen, fptr);
    message_count++;
    if(message_count == MESSAGE_COUNT){
        gettimeofday(&stop, NULL);
        mosquitto_disconnect((struct mosquitto *)obj);
    }
}

我将代码更改为:

void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg)
{   
    printf("Message Received\n");
}

在第一种情况下,当从代理收到消息时程序崩溃。在第二种情况下,它成功打印"收到消息"在控制台上。我觉得mosquitto_message * msg变量存在一些问题。

有人可以帮忙吗?

由于

0 个答案:

没有答案