跳到主要内容

示例程序

#define _GNU_SOURCE

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zconf.h>
#include "libtriton.h"

int main() {
for (;;) {
// 获取当前MQTT在线状态
int status = Status();

if (status) {
printf("mqtt is online\n");
} else {
printf("mqtt is offline\n");
}

int count = 5;

// 构建需要发送的数据数组
KeyValue *kv = (KeyValue *) calloc(count, sizeof(struct _KeyValue));
for (int i = 0; i < count; ++i) {
char key[256];
char value[256];
int klen = sprintf(key, "key-%d", i);
int vlen = sprintf(value, "%d", i);

kv[i].key = (char *) calloc(klen + 1, sizeof(char));
kv[i].value = (char *) calloc(vlen + 1, sizeof(char));

strncpy(kv[i].key, key, klen);
strncpy(kv[i].value, value, vlen);
}

// 发送数据
int ret = Send(kv, count);
printf("send returned %d\n", ret);

// 释放发送数据内存
freeKeyValues(kv, count);

// 接收数据
Payload *payload = Receive();

if (payload->size > 0) {
for (int i = 0; i < payload->size; ++i) {
printf("key %d: %s\n", i, payload->keyValue[i].key);
printf("value %d: %s\n", i, payload->keyValue[i].value);
}
}

// 释放接收数据内存
freePayload(payload);

sleep(1);
}

return 0;
}