TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议族中的两个重要传输层协议
以应用为主,学习BW,了解TCP/IP相关知识
TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议族中的两个重要传输层协议
TCP:一种面向连接的协议,通过三次握手建立可靠的连接。高可靠,高开销,传输速度相对较慢:网页、文件传输等···
UDP:一种无连接的协议,数据以数据报的形式独立发送。低可靠,低开销,传输速度相对较快:实时通信,流媒体···
我理解的AT指令中的客户端和服务器
客户端就是需要知道待连接的IP地址和端口号,对其进行接入;
服务器就是配置好端口号,等待自己IP端口号下的设备接入即可;
基于电脑上的NetAssist和手机上的卓岚物联APP进行调试,虽然没用过卓岚他家的产品,但是感觉他家的这个APP挺好用的,界面简洁,符合我的审美~
创建 socket 连接:AT+SOCKET
AT+SOCKET=<type>,<port>
<type>:socket 类型:
1:UDPServer
2:UDPClient
3:TCPServer
4:TCPClient
5:TCPSeed(占位类型,不可用,这个类型是在客户端连接的模组 tcp server 时产生的,无法主动创建)
6:SSLServer
7:SSLClient
8:SSLSeed(占位类型,不可用,这个类型是在客户端连接的模组 ssl server 时产生的,无法主动创建)
安信可的AT指令中给出了示意:
//UDPServer,写入端口号,等待Client接入
AT+SOCKET=1,8001
//UDPClient,写入待接入点的IP和端口号
AT+SOCKET=2,192.168.31.239,23333
//TCPServer,写入端口号,等待Client接入
AT+SOCKET=3,8888
//TCPClient,写入待接入点的IP和端口号
AT+SOCKET=4,192.168.31.239,60000
TCP实践
(BW16配置为TCP Client,socket通道为1,手机端配置为服务端,端口号这里设为2233,BW对手机端的IP、端口号进行SOCKET)
①、AT+SOCKET=4,xxx.xxx.xxx.xxx,2233 以客户端的形式连接TCP服务器,连接成功后可进行收发,xxx.xxx.xxx.xxx为服务器的IP,2233为端口号
②、AT+SOCKET? 查询已经建立的SOCKET
③、AT+SOCKETSEND=1,19 对ID:1发送一包,每包数据是19字节
④、1234567890123456789 待发送的数据,若数据很多则分包进行发送
⑤、AT+SOCKETSENDLINE=1,10,1234567890 以一行发送
⑥、AT+SOCKETREAD=1 被动接收时,收到了一包数据,通过该指令进行查看ID:1的数据,带缓存,每发送一次显示一帧数据,将接收显示完为止
⑦、AT+SOCKETRECVCFG=0 透传模式切换,0被动接收,1主动接收
⑧、AT+SOCKETDEL= x 删除SOCKET:x
UDP实践
(BW16配置为UDP Client客户端,socket通道为2,手机端选择UDP,端口号这里设1234,BW对手机端UDP的IP、端口号进行SOCKET,手机端得到BW16的端口号,然后 ,在UDP目的IP和端口号输入BW16的IP和端口号,便可进行双向的UDP通信)
①、AT+SOCKET=2,xxx.xxx.xxx.xxx,1234 以UDP主机的形式连接UDP从机,连接成功后可进行收发,xxx.xxx.xxx.xxx为主机的IP,1234为主机端口号,从机的端口号通过主机发送消息后,解析获得;
②、其余指令同TCP实践指令;
客户端与服务器交换同理;
这里只列出来连接后的双向交互,TCP/IP还有很多细节指令,
详见官方文档:TCP/IP AT 命令集 — 安信可科技 documentation (aithinker-combo-guide.readthedocs.io)
初步完成AT下TCP/IP的学习~_~
本帖最后由 chrisrh 于 2024-2-1 14:51 编辑