RT1052+OneNet物联网连接三
前几天一直在弄LWIP的TCP客户端连接,找了很多方法都没有找到,在看了@morphlings2014 的帖子后找到了用法。
LWIP内部的函数是官方库移植来的,也是移植的LWIP的用法。
因此在网上找到LWIP的客户端用法之后就能连上了(主要是没用过LWIP,才搞这么久,一起都是LINUX上直接用socket比较快)。
TCP客户端主连接服务器要先设置IP地址,从LWIP的PING工程中直接使用,将IP地址修改。
复制代码
然后设置需要连接的服务器IP和PORT
复制代码
复制代码
最后连接到服务器
<ignore_js_op>
接下来是连接ONENET服务器,然后将数据上传到服务器上,我使用的协议是MQTT协议,可以参考@morphlings2014 的MQTT的文章移植。
LWIP内部的函数是官方库移植来的,也是移植的LWIP的用法。
因此在网上找到LWIP的客户端用法之后就能连上了(主要是没用过LWIP,才搞这么久,一起都是LINUX上直接用socket比较快)。
TCP客户端主连接服务器要先设置IP地址,从LWIP的PING工程中直接使用,将IP地址修改。
- /* IP address configuration. */
- #define configIP_ADDR0 192
- #define configIP_ADDR1 168
- #define configIP_ADDR2 31
- #define configIP_ADDR3 188
- /* Netmask configuration. */
- #define configNET_MASK0 255
- #define configNET_MASK1 255
- #define configNET_MASK2 255
- #define configNET_MASK3 0
- /* Gateway address configuration. */
- #define configGW_ADDR0 192
- #define configGW_ADDR1 168
- #define configGW_ADDR2 31
- #define configGW_ADDR3 1
- ip4_addr_t DestIPaddr;
- struct tcp_pcb *tcp;
- IP4_ADDR( &DestIPaddr, 192, 168, 31, 175 ); //设置要连接服务器的IP
- if (tcp!=NULL)
- {
- err = tcp_connect(tcp, &DestIPaddr, 80,0); //连接到服务器
- if (err == ERR_OK)//判断没错误
- {
- tcp_write(tcp, GREETING, strlen(GREETING), 0);//发送hello到服务器
- }
- }
<ignore_js_op>
接下来是连接ONENET服务器,然后将数据上传到服务器上,我使用的协议是MQTT协议,可以参考@morphlings2014 的MQTT的文章移植。