花了五个小时分析了汉枫的模块SmartLink的实现细节;协议用了UDP广播数据包,手机向本地广播地址,端口49999,发送特定编码的数据包;显然,模块可以嗅探到该数据包,无线数据包中已经包含了SSID,以及加密方式,所以,模块仅仅需要从数据包中推算出密码,就可以成功连接本地AP了。汉枫用了一个很傻的效率较低的协议;将每一个密码字符编码为UDP包负载的字节数,一个回车,一个换行以及密码字节数;一个会话发送四次,再发送仅包含smartconfig的字符串的UDP包,如果模块配置成功,则回复包含mac地址的UDP包,手机从而知道了mac地址跟IP地址。看似复杂,但仍然很容易猜测到,所以说很傻;其实单数据包编码所有密码发送,效率最高,smartlink速度最快。