https://blog.youkuaiyun.com/weixin_44453694/article/details/129519686
后面有空,我要玩一下
linux接入到阿里云
#define SERVER_IP "asfdda.iot-as-mqtt.cn-shanghai.aliyuncs.com"//服务器IP
#define SERVER_PORT 1883 //端口号
#define ClientID "aasfsaXABf.Imasfas|securemode=2,signmethod=hmacsha256,timestamp=1678323607797|"
#define Username "ImsfeA&a1sadf8XABf"
#define Password "15566ab496e81da728a3792ebe532fd4a3f4026a2b831df5af24da06"//密文
#define SET_TOPIC "/sys/a14dXABf/ImagfA/thing/service/property/set" //订阅
#define POST_TOPIC "/sys/a14sdf8XABf/ImdfeA/thing/event/property/post" //发布
int main()
{
pthread_t id;
signal(SIGPIPE,SIG_IGN);/*忽略SIGPIPE信号*/
signal(SIGALRM,signal_func);/*闹钟信号*/
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1)
{
printf("网络套接字打开失败\n");
return 0;
}
/*设置发送缓冲区大小*/
int nSendBuf=40*1024;//设置为 20K
if(setsockopt(sockfd,SOL_SOCKET,SO_SNDBUF,(const char*)&nSendBuf,sizeof(int)))
{
printf("setsockopt(SO_SNDBUF) 设置错误!\n");
return 0;
}
/*域名解析*/
struct hostent *hostent;
while(1)
{
hostent=gethostbyname(SERVER_IP);
if(hostent==NULL)
{
printf("域名解析失败\n");
sleep(1);
}
else break;
}
printf("主机名:%s\n",hostent->h_name);
printf("协议类型:%s\n",(hostent->h_addrtype == AF_INET)?"AF_INET":"AF_INET6");
printf("IP地址长度:%d\n",hostent->h_length);
char *ip;
for(int i=0;hostent->h_addr_list[i];i++)
{
ip=inet_ntoa(*(struct in_addr *)hostent->h_addr_list[i]);
printf("ip=%s\n",ip);
}
/*连接服务器*/
struct sockaddr_in addr;
addr.sin_family=AF_INET;//IPV4
addr.sin_port=htons(SERVER_PORT);/*端口号*/
addr.sin_addr.s_addr=inet_addr(ip);//服务器IP
if(connect(sockfd, (struct sockaddr *)&addr,sizeof(struct sockaddr_in))==0)
{
printf("服务器连接成功\n");
while(1)
{
MQTT_Init();
/*登录服务器*/
if(MQTT_Connect(ClientID,Username,Password)==0)
{
break;
}
sleep(1);
printf("服务器连接中....\n");
}
printf("连接成功\r\n");
//订阅物联网平台数据
stat=MQTT_SubscribeTopic(SET_TOPIC,1,1);
if(stat)
{
close(sockfd);
printf("订阅失败\r\n");
exit(0);
}
printf("订阅成功\r\n");
/*创建线程*/
pthread_create(&id, NULL,pth_work_func,NULL);
pthread_detach(id);//设置分离属性
alarm(3);//闹钟函数,时间到达会产生SIGALRM信号
int a=0;
while(1)
{
sprintf(mqtt_message,"{\"method\":\"thing.event.property.post\",\"params\":{\"image\":\"阿里云物联网平台测试\"}}");
MQTT_PublishData(POST_TOPIC,mqtt_message,0);//发布数据
}
}
}