MQTT-C-PUB
/*
============================================================================
Name : mqtest.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <mosquitto.h>
#include <string.h>
void my_message_callback(struct mosquitto *mosq, void *userdata, const struct mosquitto_message *message)
{
if(message->payloadlen){
printf("%s %s\n", message->topic, message->payload);
}else{
printf("%s (null)\n", message->topic);
}
fflush(stdout);
}
void my_connect_callback(struct mosquitto *mosq, void *userdata, int result)
{
int i;
if(!result){
mosquitto_subscribe(mosq, NULL, "lgt", 2);
/*mosquitto_publish(mosq,NULL,"lgt")*/
/*int payloadlen, const void *payload, int qos, bool retain*/
}else{
fprintf(stderr, "Connect failed\n");
}
}
void my_subscribe_callback(struct mosquitto *mosq, void *userdata, int mid, int qos_count, const int *granted_qos)
{
int i;
printf("Subscribed (mid: %d): %d", mid, granted_qos[0]);
for(i=1; i<qos_count; i++){
printf(", %d", granted_qos[i]);
}
printf("\n");
}
void my_log_callback(struct mosquitto *mosq, void *userdata, int level, const char *str)
{
/* Pring all log messages regardless of level.*/
printf("%s\n", str);
}
int main(void) {
puts("!!!Hello World!!!");
/* prints !!!Hello World!!! */
int i=0;
char *host = "localhost";
char dst[]="lgttest12321321";
char dst1[20];
char ddd[200];
int port = 1883;
int keepalive = 60;
bool clean_session = true;
struct mosquitto *mosq = NULL;
mosquitto_lib_init();
mosq = mosquitto_new("track01", clean_session, NULL);
if(!mosq){
fprintf(stderr, "Error: Out of memory.\n");
return 1;
}
mosquitto_log_callback_set(mosq, my_log_callback);
/*mosquitto_connect_callback_set(mosq, my_connect_callback);*/
mosquitto_message_callback_set(mosq, my_message_callback);
mosquitto_subscribe_callback_set(mosq, my_subscribe_callback);
if(mosquitto_connect(mosq, host, port, keepalive)){
fprintf(", %d", i);
return 1;
}
for(;;)
{
i++;
/*itoa(i,dst1,10);*/
sprintf(dst1, "%d", i);
/**ddd=strcat(dst, dst1);*/
//dst1=dst;
mosquitto_publish(mosq, NULL, "lgt",strlen(dst1), dst1, 0, true);
/*fprintf(", %d", i);*/
}
mosquitto_loop_forever(mosq, -1, 1);
mosquitto_destroy(mosq);
mosquitto_lib_cleanup();
return 0;
/*return EXIT_SUCCESS;*/
}
最新文章
- dom2和dom3
- mySQL中如何给某一IP段的用户授权?
- 同一个主机上的JVM实例之间通信
- 关于学习Scala语言的一些感悟
- Linux经常使用命令(一) - ls
- code forces 436 C. Bus
- Windows命令行command的Shell命令详细解析和语法
- deeplearning.ai 人工智能行业大师访谈 Pieter Abbeel 听课笔记
- 将字符串存储到注册表中,长度一定是 strlen(text) + 1
- 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
- 洛谷 P1141 01迷宫
- 新建体(3):dbms_job下新建一个job定期自动执行存储过程
- C# 封装微信的模板消息
- Docker 安装和基础用法
- 20165227《网络对抗技术》Exp0 Kali安装 Week1
- 软件开发模式,DevOps
- oracle unix时间戳与date转换
- jQuery库冲突
- vue基础——组件(组件嵌套)
- solr特点三: 排序样例汇总
热门文章
- 【转】【Python】装饰器
- 【转】【WCF】WCF中客户端生成代理的两种方式
- SpringMVC系列(十)<;mvc:default-servlet-handler/>;(处理静态资源)和<;mvc:annotation-driven />;
- windows下mysql密码忘了怎么办?【转】
- eclipse中svn提交报错的解决
- Vue文件跳转$router传参数
- crontab(定时任务操作)
- 利用POST重启路由器,一直无法实现,求帮助
- GCT之语文细节知识
- jenkins 启动slave,出现com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://127.0.0.1:8080/jnlpJars/remoting.jar