我正在研究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变量存在一些问题。
有人可以帮忙吗?
由于