dorentus
2015-12-01 10:19:23 +08:00
>> 所谓的 smartconfig 就是手机 APP 端发送包含 WIFI 用户名 WIFI 密码的 UDP 广播包或者组播包,智能终端的 WIFI 芯片可以接收到该 UDP 包
严格意义上讲,智能终端的 WIFI 芯片**不能接收到该 UDP 包**,因为 WIFI 是加密的。
但是 WIFI 的无线电信号是可以公开读取到的,并且通过精心构造的发送 pattern (时间间隔和数据包长度),智能终端的 WIFI 芯片可以在茫茫信号中发现 App 发送的这一系列数据包(不过无法解析出内容)。然后 WIFI 协议可以保证一个长度为 n 的数据包,在接收方看来,是一个长度为 n + C 的包,其中 C 是常数。
于是简单地说,发送方可以构造一系列长度为 a, b, c, d, e 的数据包,持续不断地循环发,期望接收方可以发现一个 (a+C, b+C, c+C, d+C, e+C) 的长度模式( C 对于不同的热点可能不同,但并不重要),那么信息就可以被编码在这个数据包长度模式里面从手机发送到智能终端。
比如我想发数字序列 (1, 4, 2),那么我可以构造一个长度为 (10, 11, 15, 17) 的序列,然后以此为长度发送组播数据包(内容并不重要),然后接收方收到的可能是长度 (22, 23, 27, 29) 这样的序列,但是没关系,信息 (1, 4, 2) 依然可以从里面解析出来。
当然实际的实现更复杂一些,包含好几个不同发送模式的阶段来方便智能终端的 WIFI 芯片从茫茫信号中发现 app 发的数据包。