今天测试下TCP连接与数据收发
1.首先发送几个基本的AT指令注册并激活网络连接:
2.接下来就ping下百度:
左边是我的电脑接的网线,右边是模组,差的还是挺大的,不过我们应用的是物联网小速率传输可以了。
3.现在正式创建TCP连接:
①AT+SKTCREATE 创建Socket
该命令会在 UE 端创建一个基于 TCP 或者 UDP 的 socket。UE 支持最多同时创建 7 个 TCP 或者UDP socket,超出会返回如果发生错误
我们选择IPV4,TCP协议:
连续创建会返回对应Socket文件描述符
②AT+SKTCONNECT 连接远程服务器和端口
对于 TCP, 该命令将会执行连接到远程服务器地址和端口。
对于UDP,该命令将会保存远程服务器的地址和端口号,用于后续数据的发送。
利用安信可提供的服务器连接服务器:
安信可透传云:http://tt.ai-thinker.com:8000/ttcloud
要注意:3分钟内无客户端接入要刷新重新开启
③AT+SKTSTATUS 获取socket 状态
该命令获取相应文件描述符的 socket 状态
表示已经连接上
接收数据:
不过接收的是16进制还要转ascii才行。
发送数据:
④AT+SKTSEND 发送数据
发送一定长度的数据到远程服务器地址和端口中。
4.利用NATAPP内网穿透进行本地电脑与模块TCP通信:
就是将我们本地电脑局域网IP(192.168.0.x)映射到公网IP上
上文我们用安信可透传云实现电脑和模块通信,实际上是别人的网页,而且端口号刷新完会改变,现在我们要实现本地电脑和模块通信。
因为192.168.x.x为局域网ip,路由器没办法转发这个ip的数据到intermet,所以不能直接和模块通信,所以我们要先建立一条局域网到公网的链路,内网穿透就是利用有固定公网 IP 地址的服务器做一个中转站,在互联网上打通一条点对点的专用隧道用来转发数据。
我选择NATAPP:http://natapp.cn/
下载客户端:
得到两个文件,进入config文件:
启动穿透:
这样就建立了本地和公网ip的链路
因为模组连接TCP要IP,不能用域名,先域名解析:
如上文建立TCP连接:
接收:
发送:
至此本地与模组TCP通信完成!!
不过这个NATAPP端口还是会改变,毕竟是免费的,有条件可以租个服务器和公网ip就有固定的端口了。