一种适用于云音箱建立连接的方法及系统与流程

文档序号:18472167发布日期:2019-08-20 20:25阅读:2472来源:国知局
本发明涉及互联网
技术领域
:,特别涉及一种适用于云音箱建立连接的方法及系统。
背景技术
::随着移动互联网与物联网技术的发展,越来越多的设备具有了无线网络的接入能力。这些设备的特点是小型化以及低功耗,大多数类似的设备都没有配置屏幕以及键盘等输入外设,因此如何将无线网络的名称与密码传输到这类设备成为一大难题。目前,为云音箱等智能设备配网的方式通常都是通过移动终端,将网络wifi名称和密码通过广播包发送到空中,云音箱等智能设备接收到广播包进行配网;然而,云音箱等智能设备在使用微信客户端的方式配置设备配网连接过程中会存在组包失败的问题,从而造成智能设备无法配网,及与服务器建立连接失败。技术实现要素:本发明提供了一种适用于云音箱建立连接的方法即系统,解决了上述技术问题。本发明提供的一种适用于云音箱建立连接的方法,该方法包括:s1、移动终端获取网络名称和密码;s2、移动终端构造前导域数据;s3、移动终端获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据;获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据;根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值;根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值;可选地,移动终端获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据,具体为:移动终端顺序获取网络名称中每一个字段的预设码,将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第一编码数据;优选的,移动终端获取网络名称中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中,当该字段为中文或字符,则获取该字段的统一码,将预设字符和统一码写入预设变量中,得到每一个字段的预设码;其中,将预设字符和统一码写入预设变量中之后还包括:判断预设变量的长度,当长度为4个字节,则在变量的第二位写入两个0,当长度为5个字节,则在变量的第二位写入一个0;可选地,根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值,具体为:将第一编码数据的长度作为除数,将第一编码数据变换后作为被除数,用被除数除以除数得到的余数为第一校验值;优选的,将第一编码数据变换后作为被除数具体为:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值,得到变换后的第一编码数据;可选地,获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据,具体为:移动终端顺序获取密码中每一个字段的预设码,将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第二编码数据;优选地,获取密码中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中;可选地,根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值,具体为:将第二编码数据的长度作为除数,将第二编码数据变换后作为被除数,用被除数除以除数得到的余数为第二校验值;其中,将第二编码数据变换后作为被除数具体为:获取第二编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第二编码数据后面加上与新的二进制位数长度相同位数的第二预设值,得到变换后的第二编码数据;其中,预设编码方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10;优选的,将每一个字段的二进制数据写入对应的编码形式中,具体为:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。s4、移动终端将第一编码数据和第一校验值进行组合得到第一数据;将第二编码数据和第二校验值进行组合得到第二数据;将第一编码数据、第二编码数据和移动终端生成的随机数组合得到第三数据;s5、移动终端根据前导域数据、第一数据、第二数据和第三数据拼接得到数据包,并将数据包发送给智能设备;s6、智能设备接收并解析数据包,获取网络名称和密码并进行网络连接,网络连接成功后与服务器建立连接。本发明提供的一种适用于云音箱建立连接的系统,该系统包括:移动终端和智能设备;其中,移动终端包括:第一获取模块、构造模块、编码模块、计算模块、组合模块、发送模块;具体地,第一获取模块,用于获取网络名称和密码;具体地,构造模块,用于构造前导域数据;具体地,第一获取模块,还用于获取网络名称的预设码;还用于获取密码的预设码;可选地,第一获取模块包括第一获取子模块,第一获取子模块具体用于:顺序获取网络名称中每一个字段的预设码;优选的,第一获取子模块具体用于:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中,当该字段为中文或字符,则获取该字段的统一码,将预设字符和统一码写入预设变量中,得到每一个字段的预设码;其中,当第一获取子模块具体用于将预设字符和统一码写入预设变量中时,第一获取子模块具体用于:判断预设变量的长度,当长度为4个字节,则在变量的第二位写入两个0,当长度为5个字节,则在变量的第二位写入一个0。可选地,第一获取模块包括第二获取子模块,第二获取子模块具体用于:顺序获取密码中每一个字段的预设码;优选的,第二获取子模块具体用于:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中。具体地,编码模块,用于将第一获取模块获取的网络名称的预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据;还用于将第一获取模块获取的密码的预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据;可选地,编码模块包括第一编码子模块,第一编码子模块具体用于:将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第一编码数据;可选地,编码模块包括第二编码子模块,第二编码子模块具体用于:将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第二编码数据。其中,预设编码规则方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10。其中,第一编码子模块具体用于将每一个字段的二进制数据写入对应的编码形式中时,所述第一编码子模块具体用于:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。第二编码子模块具体用于将每一个字段的二进制数据写入对应的编码形式中时,所述第二编码子模块具体用于:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。具体地,计算模块,用于根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值;还用于根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值;可选地,计算模块包括第一计算子模块,第一计算子模块用于将第一编码数据的长度作为除数,将第一编码数据变换后作为被除数,用被除数除以除数得到的余数为第一校验值;其中,当第一计算子模块用于将第一编码数据变换后作为被除数时,第一计算子模块具体用于:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值。可选地,计算模块包括第二计算子模块,第二计算子模块用于将第二编码数据的长度作为除数,将第二编码数据变换后作为被除数,用被除数除以除数得到的余数为第二校验值;其中,当第二计算子模块用于将第二编码数据变换后作为被除数时,第二计算子模块具体用于:获取第二编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第二编码数据后面加上与新的二进制位数相同位数的第二预设值。具体地,组合模块,用于将第一编码数据和第一校验值进行组合得到第一数据;还用于将第二编码数据和第二校验值进行组合得到第二数据;还用于将第一编码数据、第二编码数据和移动终端生成的随机数组合得到第三数据;具体地,组合模块,还用于根据构造模块构造的前导域数据、第一数据、第二数据和第三数据拼接得到数据包;具体地,发送模块,用于将组合模块拼接得到的数据包发送给智能设备;其中,智能设备包括:接收模块、解析模块、第二获取模块、连接模块;具体地,接收模块,用于接收移动终端发送的数据包;具体地,解析模块,用于解析接收模块接收到的数据包;具体地,第二获取模块,用于获取解析模块解析得到的数据包中的网络名称和密码;具体地,连接模块,用于根据第二获取模块获取到的网络名称和密码进行网络连接;还用于网络连接成功后与服务器建立连接。本发明的有益效果:本发明提供了一种适用于云音箱建立连接的方法及系统;本方案采用对移动设备连接的网络名称进行编码的方式,得到编码后的网络名称的长度,根据编码后的网络名称和编码后的网络名称的长度进行数据包组包,将数据包发送给云音箱,云音箱接收并解析数据包,获取网络名称和密码连接网络,并与服务器建立连接成功。本发明解决了云音箱使用微信客户端的方式配网连接过程中组包失败的问题,从而解决了智能设备无法配网的问题,及云音箱与服务器连接失败的问题,提升了用户体验。附图说明图1为本发明实施例二提供的一种适用于云音箱建立连接方法的流程图;图2为本发明实施例三提供的一种适用于云音箱建立连接的系统框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本实施例提供了一种适用于云音箱建立连接的方法,该方法包括:步骤s1、移动终端获取网络名称和密码;步骤s2、移动终端构造前导域数据;步骤s3、移动终端获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据;获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据;根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值;根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值;步骤s4、移动终端将第一编码数据和第一校验值进行组合得到第一数据;将第二编码数据和第二校验值进行组合得到第二数据;将第一编码数据、第二编码数据和移动终端生成的随机数组合得到第三数据;步骤s5、移动终端根据前导域数据、第一数据、第二数据和第三数据拼接得到数据包,并将数据包发送给智能设备;步骤s6、智能设备接收并解析数据包,获取网络名称和密码并进行网络连接,网络连接成功后与服务器建立连接。在本实施例中,移动终端获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据,具体为:移动终端顺序获取网络名称中每一个字段的预设码,将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第一编码数据。在本实施例中,移动终端获取网络名称中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中,当该字段为中文或字符,则获取该字段的统一码,将预设字符和统一码写入预设变量中,得到每一个字段的预设码。可选地,将预设字符和统一码写入预设变量中之后还包括:判断预设变量的长度,当长度为4个字节,则在变量的第二位写入两个0,当长度为5个字节,则在变量的第二位写入一个0。在本实施例中,根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值,具体为:将第一编码数据的长度作为除数,将第一编码数据变换后作为被除数,用被除数除以除数得到的余数为第一校验值;可选地,将第一编码数据变换后作为被除数具体为:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值,得到变换后的第一编码数据。在本实施例中,获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据,具体为:移动终端顺序获取密码中每一个字段的预设码,将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第二编码数据。在本实施例中,获取密码中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中。在本实施例中,根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值,具体为:将第二编码数据的长度作为除数,将第二编码数据变换后作为被除数,用被除数除以除数得到的余数为第二校验值;可选地,将第二编码数据变换后作为被除数具体为:获取第二编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第二编码数据后面加上与新的二进制位数长度相同位数的第二预设值,得到变换后的第二编码数据。在本实施例中,预设编码方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10。在本实施例中,将每一个字段的二进制数据写入对应的编码形式中,具体为:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。实施例二本实施例提供了一种适用于云音箱建立连接的方法,如图1所示,该方法包括:步骤101、移动终端获取网络名称和密码;在本实施例中,网络名称为移动终端连接的wifi名称,也可以是ssid,密码为移动终端连接的wifi密码,也可以是password;例如,wifi名称ssid为:飞天;password为:ftsafe123456。步骤102、移动终端构造前导域数据;在本实施例中,前导域由4个字节组成,其值固定为{1,2,3,4};步骤103、移动终端获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据;获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据;根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值;根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值;在本实施例中,获取网络名称的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据,具体为:a1.顺序获取网络名称中每一个字段的预设码;获取网络名称中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码,判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中,当该字段为中文或字符,则获取该字段的统一码,将预设字符和统一码写入预设变量中,得到每一个字段的预设码;可选地,将统一码写入预设变量中之后还包括:判断预设变量的长度,当长度为4个字节,则在变量的第二位写入两个0,当长度为5个字节,则在变量的第二位写入一个0;具体地,预设的变量为:nsmutablestring*s=[nsmutablestringstringwithcapacity:0];例如,网络名称为:飞天;网络名称中的‘飞’字段为中文,则获取‘飞’的统一码为98de,预设字符为“\u”,得到‘飞’字段的预设码:\u98de;网络名称中的‘天’字段为中文,则获取‘天’的统一码为5929,预设字符为“\u”,得到‘天’字段的预设码:\u5929。a2.将每一个字段的预设码转换为二进制数据;具体地,例如,‘飞’字段的预设码转换为二进制数据为:1001100011011110;‘天’字段的预设码转换为二进制数据为:101100100101001。a3.根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,在本实施例中,预设编码方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10;具体地,第一预设区间为00000000-0000007f;第二预设区间为00000080-000007ff;第三预设区间为00000800-0000ffff;第四预设区间为00010000-0010ffff;具体对应的编码形式如以下类型:a.00000000-0000007f|0xxxxxxxb.00000080-000007ff|110xxxxx10xxxxxxc.00000800-0000ffff|1110xxxx10xxxxxx10xxxxxxd.00010000-0010ffff|11110xxx10xxxxxx10xxxxxx10xxxxxx;可选地,将每一个字段的二进制数据写入对应的编码形式中,具体为:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中;具体地,例如,‘飞’字段的预设码的值在0800-0000ffff区间中,则‘飞’字段的编码形式为类型c,将‘飞’字段的二进制数据1001100011011110写入编码形式c中,得到‘飞’字段的编码数据为:111010011010001110011110;‘天’字段的预设码的值在0800-0000ffff区间中,则‘天’字段的编码形式为类型c,将‘天’字段的二进制数据101100100101001写入编码形式c中,得到‘飞’字段的编码数据为:111010011010001110011110;a4.将每一个字段的编码数据进行组合得到第一编码数据。具体地,将网络名称中‘飞’、‘天’的编码数据进行组合得到第一编码数据为:111010011010001110011110111010011010001110011110。在本实施例中,获取密码的预设码,将预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据,具体为:b1.顺序获取密码中每一个字段的预设码;获取密码中每一个字段的预设码具体为:预设一个变量,用于接收该字段的预设码,判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中。具体地,预设的变量为:nsmutablestring*p=[nsmutablestringstringwithcapacity:0];例如,密码为:ftsafe123456;密码中的‘f’字段、‘t’字段、‘s’字段、‘a’字段、‘f’字段、‘e’字段均为英文,‘1’字段、‘2’字段、‘3’字段、‘4’字段、‘5’字段、‘6’字段均为数字,则将各个字段本身写入预设变量中,得到各个字段的预设码;‘f’字段的预设码:f;‘t’字段的预设码:t;‘s’字段的预设码:s;‘a’字段的预设码:a;‘f’字段的预设码:f;‘e’字段的预设码:e;‘1’字段的预设码:1;‘2’字段的预设码:2;‘3’字段的预设码:3;‘4’字段的预设码:4;‘5’字段的预设码:5;‘6’字段的预设码:6。b2.将每一个字段的预设码转换为二进制数据;具体地,例如,‘f’字段的预设码转换为二进制数据为:01100110;‘t’字段的预设码转换为二进制数据为:01110100;‘s’字段的预设码转换为二进制数据为:01110011;‘a’字段的预设码转换为二进制数据为:01100001;‘f’字段的预设码转换为二进制数据为:01100110;‘e’字段的预设码转换为二进制数据为:01100101;‘1’字段的预设码转换为二进制数据为:1;‘2’字段的预设码转换为二进制数据为:10;‘3’字段的预设码转换为二进制数据为:11;‘4’字段的预设码转换为二进制数据为:100;‘5’字段的预设码转换为二进制数据为:101;‘6’字段的预设码转换为二进制数据为:110。b3.根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,在本实施例中,预设编码方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10;具体地,第一预设区间为00000000-0000007f;第二预设区间为00000080-000007ff;第三预设区间为00000800-0000ffff;第四预设区间为00010000-0010ffff;具体对应的编码形式如以下类型:a.00000000-0000007f|0xxxxxxxb.00000080-000007ff|110xxxxx10xxxxxxc.00000800-0000ffff|1110xxxx10xxxxxx10xxxxxxd.00010000-0010ffff|11110xxx10xxxxxx10xxxxxx10xxxxxx;可选地,将每一个字段的二进制数据写入对应的编码形式中,具体为:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中;具体地,例如,‘f’字段的预设码的值在0000-007f区间中,则‘f’字段的编码形式为类型a,将‘f’字段的二进制数据01100110写入编码形式a中,得到‘f’字段的编码数据为:01100110;‘t’字段的预设码的值在0000-007f区间中,则‘t’字段的编码形式为类型a,将‘t’字段的二进制数据01110100写入编码形式a中,得到‘t’字段的编码数据为:01110100;‘s’字段的预设码的值在0000-007f区间中,则‘s’字段的编码形式为类型a,将‘s’字段的二进制数据01110011写入编码形式a中,得到‘s’字段的编码数据为:01110011;‘a’字段的预设码的值在0000-007f区间中,则‘a’字段的编码形式为类型a,将‘a’字段的二进制数据01100001写入编码形式a中,得到‘a’字段的编码数据为:01100001;‘f’字段的预设码的值在0000-007f区间中,则‘f’字段的编码形式为类型a,将‘f’字段的二进制数据01100110写入编码形式a中,得到‘f’字段的编码数据为:01100110;‘e’字段的预设码的值在0000-007f区间中,则‘e’字段的编码形式为类型a,将‘e’字段的二进制数据01100101写入编码形式a中,得到‘e’字段的编码数据为:01100101;‘1’字段的预设码的值在0000-007f区间中,则‘1’字段的编码形式为类型a,将‘1’字段的二进制数据1写入编码形式a中,得到‘1’字段的编码数据为:00000001;‘2’字段的预设码的值在0000-007f区间中,则‘2’字段的编码形式为类型a,将‘2’字段的二进制数据10写入编码形式a中,得到‘2’字段的编码数据为:00000010;‘3’字段的预设码的值在0000-007f区间中,则‘3’字段的编码形式为类型a,将‘3’字段的二进制数据11写入编码形式a中,得到‘3’字段的编码数据为:00000011;‘4’字段的预设码的值在0000-007f区间中,则‘4’字段的编码形式为类型a,将‘4’字段的二进制数据100写入编码形式a中,得到‘4’字段的编码数据为00000100:;‘5’字段的预设码的值在0000-007f区间中,则‘5’字段的编码形式为类型a,将‘5’字段的二进制数据101写入编码形式a中,得到‘5’字段的编码数据为:00000101;‘6’字段的预设码的值在0000-007f区间中,则‘6’字段的编码形式为类型a,将‘6’字段的二进制数据110写入编码形式a中,得到‘6’字段的编码数据为:00000110。b4.将每一个字段的编码数据进行组合得到第二编码数据。具体地,将密码中‘f’字段、‘t’字段、‘s’字段、‘a’字段、‘f’字段、‘e’字段、‘1’字段、‘2’字段、‘3’字段、‘4’字段、‘5’字段、‘6’字段的编码数据进行组合得到第二编码数据为:011001100111010001110011011000010110011001100101000000010000001000000011000001000000010100000110。在本实施例中,根据第一预设算法对第一编码数据和第一编码数据的长度进行计算得到第一校验值,具体为:将第一编码数据的长度的二进制数作为除数,将第一编码数据变换后作为被除数,用被除数除以除数得到的余数为第一校验值;将第一编码数据变换后作为被除数具体为:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值,得到变换后的第一编码数据;例如,第一编码数据为:111010011010001110011110111010011010001110011110;对应的十六进制数据为:e9a39ee5a4a9;获取的第一编码数据的长度为:6字节;长度的二进制数据为:110;二进制数据的位数为3位,第一预设值为1,第二预设值为0;则第一编码数据变换后为:11101001101000111001111011101001101000111001111000;得到的第一校验值为:0x22;在本实施例中,根据第一预设算法对第二编码数据和第二编码数据的长度进行计算得到第二校验值,具体为:将第二编码数据的长度作为除数,将第二编码数据变换后作为被除数,用被除数除以除数得到的余数为第二校验值;将第二编码数据变换后作为被除数具体为:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值,得到变换后的第二编码数据;例如,第二编码数据为:011001100111010001110011011000010110011001100101000000010000001000000011000001000000010100000110;第二编码数据的长度为:12个字节;长度的二进制数据为1100;二进制数据的位数为4位,第一预设值为1,第二预设值为0;则第二编码数据变换后为:011001100111010001110011011000010110011001100101000000010000001000000011000001000000010100000110000;计算得到的第二校验值为:0xa3。步骤104、移动终端将第一遍码数据和第一校验值进行组合得到第一数据;将第二编码数据和第二校验值进行组合得到第二数据;将第一编码数据、第二编码数据和移动终端生成的随机数组合得到第三数据;在本实施例中,移动终端生成的随机数具体为:移动终端通过调用随机数产生函数arc4random()生成随机数;具体地,第一数据为:0x01,0x13,0x22,0x32;第二数据为:0x40,0x5c,0x6a,0x73;第三数据为:66747361,66653132,33343536,6ee9a39e,e5a4a9。步骤105、移动终端根据前导域数据、第一数据、第二数据和第三数据拼接得到数据包;在本实施例中,拼接得到的数据包为:1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,1,19,34,50,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420,425,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420,425,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420,425,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420,425,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420,425,64,92,106,115,176,128,358,372,371,353,175,129,358,357,305,306,178,130,307,308,309,310,183,131,366,489,419,414,154,132,485,420。步骤106、移动终端将数据包发送给智能设备。本实施例中,智能设备具体为云音箱。步骤107、智能设备开启混杂模式,监听信道;在本实施例中,智能设备开启混杂模式之后,开始监听空中的无线信号,接收数据包。步骤108、智能设备接收数据包,并解析数据包获取网络名称和密码,根据网络名称和密码连接网络;在本实施例中,智能设备接收数据包,并解析数据包获取网络名称和密码具体为:智能设备解析数据包获取数据包中的第一校验值;智能设备扫描得到可用网络名称,根据第二预设算法对任一可用网络名称和其长度进行计算得到可用网络名称的校验值;智能设备将计算得到的校验值与获取的数据包中的第一校验值进行比对,若比对一致,则从数据包中获取网络名称对应的密码;步骤109、智能设备与服务器建立连接。实施例三本发明实施例三提供了一种适用于云音箱建立连接的系统,该系统如图2所示,包括:移动终端100和智能设备200;其中,移动终端100包括:第一获取模块11、构造模块12、编码模块13、计算模块14、组合模块15、发送模块16;具体地,第一获取模块11,用于获取网络名称和密码;具体地,构造模块12,用于构造前导域数据;具体地,第一获取模块11,还用于获取网络名称的预设码;还用于获取密码的预设码;可选地,第一获取模块11包括第一获取子模块,第一获取子模块具体用于:顺序获取网络名称中每一个字段的预设码;第一获取子模块具体用于:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中,当该字段为中文或字符,则获取该字段的统一码,将预设字符和统一码写入预设变量中,得到每一个字段的预设码。当第一获取子模块具体用于将预设字符和统一码写入预设变量中时,第一获取子模块具体用于:判断预设变量的长度,当长度为4个字节,则在变量的第二位写入两个0,当长度为5个字节,则在变量的第二位写入一个0。可选地,第一获取模块11包括第二获取子模块,第二获取子模块具体用于:顺序获取密码中每一个字段的预设码;第二获取子模块具体用于:预设一个变量,用于接收该字段的预设码;判断该字段的类型,当该字段为英文或数字,则将该字段本身写入预设变量中。具体地,编码模块13,用于将第一获取模块11获取的网络名称的预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第一编码数据;还用于将第一获取模块11获取的密码的预设码转换为二进制数据,根据预设编码方法将二进制数据进行编码,得到第二编码数据;可选地,编码模块13包括第一编码子模块,第一编码子模块具体用于:将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第一编码数据。当第一编码子模块具体用于将每一个字段的二进制数据写入对应的编码形式中时,第一编码子模块具体用于:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。可选地,编码模块13包括第二编码子模块,第二编码子模块具体用于:将每一个字段的预设码转换为二进制数据,根据预设编码方法确定每一个字段所对应的编码形式,将每一个字段的二进制数据写入对应的编码形式中,得到每一个字段的编码数据,将每一个字段的编码数据进行组合得到第二编码数据。当第二编码子模块具体用于将每一个字段的二进制数据写入对应的编码形式中时,第二编码子模块具体用于:将每一个字段的二进制数据按照倒序的方式从后往前写入对应的编码形式中。可选地,预设编码规则方法具体为:当字段对应预设码的值在第一预设区间,则编码形式为:最高位为0的一个字节;当字段对应预设码的值在第二预设区间,则编码形式为:两个字节,第一个字节的前三位为110,第二个字节的前两位为10;当字段对应预设码的值在第三预设区间,则编码形式为:三个字节,第一个字节的前四位为1110,后两个字节的前两位为10;当字段对应预设码的值在第四预设区间,则编码形式为:四个字节,第一个字节的前五位为11110,后三个字节的前两位为10。具体地,计算模块14,用于根据第一预设算法对编码模块13编码得到的第一编码数据和第一编码数据的长度进行计算得到第一校验值;还用于根据第一预设算法对编码模块13编码得到的第二编码数据和第二编码数据的长度进行计算得到第二校验值;可选地,计算模块14包括第一计算子模块,第一计算子模块用于将第一编码数据的长度作为除数,将第一编码数据变换后作为被除数,用被除数除以除数得到的余数为第一校验值;当第一计算子模块用于将第一编码数据变换后作为被除数时,第一计算子模块具体用于:获取第一编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第一编码数据后面加上与新的二进制位数相同位数的第二预设值。可选地,计算模块14包括第二计算子模块,第二计算子模块用于将第二编码数据的长度作为除数,将第二编码数据变换后作为被除数,用被除数除以除数得到的余数为第二校验值;当第二计算子模块用于将第二编码数据变换后作为被除数时,第二计算子模块具体用于:获取第二编码数据的长度,计算长度的二进制数据,获取二进制数据的位数,将二进制数据的位数减去第一预设值得到新的二进制位数,在第二编码数据后面加上与新的二进制位数相同位数的第二预设值。具体地,组合模块15,用于将编码模块13编码得到的第一编码数据和计算模块14计算得到的第一校验值进行组合得到第一数据;还用于将编码模块13编码得到的第二编码数据和计算模块14计算得到的第二校验值进行组合得到第二数据;还用于将第一编码数据、第二编码数据和移动终端生成的随机数组合得到第三数据;具体地,组合模块15,还用于根据构造模块12构造的前导域数据、第一数据、第二数据和第三数据拼接得到数据包;具体地,发送模块16,用于将组合模块15拼接得到的数据包发送给智能设备200;智能设备200包括:接收模块21、解析模块22、第二获取模块23、连接模块24;具体地,接收模块21,用于接收移动终端发送的数据包;具体地,解析模块22,用于解析接收模块21接收到的数据包;具体地,第二获取模块23,用于获取解析模块22解析得到的数据包中的网络名称和密码;具体地,连接模块24,用于根据第二获取模块23获取到的网络名称和密码进行网络连接;还用于网络连接成功后与服务器建立连接。本发明提供了一种适用于云音箱建立连接的方法及系统;本发明提供了一种适用于云音箱配网过程中建立连接的组包方法及系统;本方案采用对移动设备连接的网络名称进行编码的方式,得到编码后的网络名称的长度,根据编码后的网络名称和编码后的网络名称的长度进行数据包组包,将数据包发送给云音箱,云音箱接收并解析数据包,获取网络名称和密码连接网络,并与服务器建立连接成功。本发明解决了云音箱使用微信客户端的方式配网连接过程中组包失败的问题,从而解决了智能设备无法配网的问题,及云音箱与服务器连接失败的问题,提升了用户体验。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1