RT-Thread源码分析字节实现socket源码
无论是客户端还是服务器程序,
发送的底层都是发送AT指令:1)发送命令到串口;2)阻塞等待返回结果
接收的底层都是1)阻塞等待;2)被唤醒后拷贝处理数据
两者均由后台任务唤醒,后台平时:1)读UART; 2)分辨:a.AT回应?那么唤醒命令发送者;b.网络数据?解析属于哪个socket, 存入对应socket的buff, 唤醒接收者。
实现socket源码:详见Third_Party的at_socket文件夹
自定义AT_Device结构体,里面有多个socket(至于支持多少个socket要看芯片手册),后台线程将解析的数据分发给多个socket。client线程通过socket读取数据。
w800.c是最核心的文件,里面实现了w800相关的函数和创建后台线程。
后台线程是通信的核心,在后台线程的帮助下,APP才能发送AT命令,才能接收到网络数据。