MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
int rc = 0;
char buf[200];
int buflen = sizeof(buf);
int mysock = 0;
MQTTString topicString = MQTTString_initializer;
char* payload = "mypayload";
int payloadlen = strlen(payload);
int len = 0;
char *host = "192.168.20.100";
int port = 1883;
mysock = transport_open(host,port);
if(mysock < 0){
perror("error");
return mysock;
}
printf("Sending to hostname %s port %d\n", host, port);
data.clientID.cstring = "me";
data.keepAliveInterval = 20;
data.cleansession = 1;
// data.username.cstring = "";
// data.password.cstring = "";
data.MQTTVersion = 4;
len = MQTTSerialize_connect((unsigned char *)buf, buflen, &data);
topicString.cstring = "mytopic";
len += MQTTSerialize_publish((unsigned char *)(buf + len), buflen - len, 0, 0, 0, 0, topicString, (unsigned char *)payload, payloadlen);
len += MQTTSerialize_disconnect((unsigned char *)(buf + len), buflen - len);
rc = transport_sendPacketBuffer(mysock, buf, len);
if (rc == len)
printf("Successfully published\n");
else
printf("Publish failed\n");
exit:
transport_close(mysock);
}