基于lwip协议的socket编程-ap配网
wifi芯片工作模式ap模式和station模式,ap配网,简而言之,我们的设备工作再ap模式,提供给其他设备连接后,可通过http请求将我们设备需要连接wifi的ssid和password传递给我们设备,比如页面登录192.168.1.1(设备ip地址),从设备获取http请求,获取当前设备扫描到的可用网络,设备将数据嵌入到页面信息中。
实现ap配网,设备必须支持tcpip协议栈,可以通过socket编程,实现同一局域网络中不同设备的通信。
1.设置wifi工作在ap模式
wifi_ap_start(wifi_softap, 3);
2.创建一个任务处理ap配网
xTaskCreate(ll_a1_tcp_task, LL_TCP_NAME, LL_TCP_STACKSIZE / ((uint32_t)sizeof(StackType_t)), NULL, LL_TCP_TASK_PRIO, NULL);
3.socket监听http端口(代码已经删减)
void ll_a1_tcp_task(void *param)
{
fd_set readset;
int c;
int ret;
int rlen;
struct sockaddr_in addr;
char srv_buf[3548] = {0};
int s;
//填充地址结构
memset(&addr, 0, sizeof(addr));
addr.sin_len = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_port = lwip_htons(80); //监听http端口
addr.sin_addr.s_addr = lwip_htonl(0.0.0.0); //接收当前局域网络中所有http数据
//创建套接字
s = lwi