概述
OneNET
OneNET云平台
配置虚拟机网络
1、linux虚拟机连接外网的配置方法,配置linux虚拟机能连接外网
1)、虚拟机配置成桥接模式
2)、linux 虚拟机ip设置,配置网关、DNS等,需重启虚拟机让配置生效
配置网络
3)、检查ip配置是否成功(ifconfig)
4)、测试
网关配置正确,能ping通外网
DNS配置正确,能ping通外网网址
上传数据
1、从虚拟机上上传数据到OneNET平台的功能
1)、创建一个Socket套接字描述符
sockfd = socket(AF_INET,SOCK_STREAM,0)
// 客户端程序建立TCP协议的socked套接字描述符
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1)
{
perror("socket");
exit(1);
}
2)、客户端初始化sockaddr结构体,设定与服务器相同端口号
// 客户端程序初始化sockaddr结构体,连接到服务器的端口
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(80);
their_addr.sin_addr = *((struct in_addr *)he->h_addr);
bzero(&(their_addr.sin_zero),8);
3)、调用connect函数来连接服务器
connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))
if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))==-1)
{
perror("connect");
exit(1);
}
setsockopt(sockfd,SOL_SOCKET, SO_RCVTIMEO, (char *)&nNetTimeout,sizeof(int));
4)、HTTP 消息构造
HTTP报文格式示例:
示例1
示例2
// HTTP 消息构造
sprintf(sndBuf, "POST /devices/1078739/datapoints?type=5 HTTP/1.1rn");
strcat(sndBuf,"api-key: bryNFvy26sbj91Isu5mHXp322fwIvtc=rn");
strcat(sndBuf,"Host:api.clouds.comrn");
strcat(sndBuf,"Content-Length:13rn");
strcat(sndBuf,"rn");
strcat(sndBuf,",;hightemp,35");
5)、发送或接受数据,使用send和recv函数调用来实现
6)、终止连接
close(sockfd);
2、编译客户端程序
1)、编写编译客户端程序的Makefile文件,由于客户端程序在宿主机上运行,使用gcc编译器,Makefile文件如下:
// Makefile
EXTRA_LIBS += -lpthread
CC=gcc
EXEC = ./oneclient
OBJS = oneclient.o
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_LIBS)
install:
$(EXP_INSTALL) $(EXEC) $(INSTALL_DIR)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
2)、运行编译客户端程序的Makefile,直接输入make
3)、连接OneNET,上传数据
3、登录OneNET
在OneNET云平台上注册用户,创建产品,查看数据流
最后
以上就是强健大船为你收集整理的Linux虚拟机向OneNET云平台上传数据的全部内容,希望文章能够帮你解决Linux虚拟机向OneNET云平台上传数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复