一种时间可控的ios内网可达性检测系统与方法

文档序号:7815470阅读:713来源:国知局
一种时间可控的ios内网可达性检测系统与方法
【专利摘要】本发明公开了一种时间可控的IOS内网可达性检测系统与方法,所述的IOS内网可达性检测系统包括参数设置模块、事件监听模块、发起连接模块、结果分析模块。所述的方法首先设置可达性检测的参数,其次监听网络状态变化的广播,再发起对目标主机的连接,最后分析发起连接返回的信息,得出网络连接的具体状态。本发明综合利用Reachability库能够接收系统中网络事件广播的优势,和C语言中Socket异步连接的时间参数可控的特征,既保证了检测的准确性,又提升了检测的时效性。
【专利说明】—种时间可控的IOS内网可达性检测系统与方法

【技术领域】
[0001]本发明属于移动互联网【技术领域】,具体涉及一种时间可控的IOS内网可达性检测系统与方法。

【背景技术】
[0002]随着智能终端设备的普及与应用推广,越来越多的企业员工使用移动终端进行办公和内部交流,由此,移动终端与企业内网的数据交互也就越来越多。目前,IOS系统上的应用程序对于内网可达性几乎都是使用SDK中自带的Reachability库,该库中提供的函数可以根据输入的目标域名和IP判断判断网络连接状况,以及是否是WIFI或3G网络等信息,另外,当网络状态发生变化时,还可以接收到系统广播。然而该方法适用于具体应用中时,会出现检测网络无法连通的时间过长,测试结果基本为15秒左右,这段时间内,用户常常以为网络是可达的,做出具体操作之后并未发生与内网机器的实际交互,则可能造成数据的丢包与操作的遗漏,影响办公效率,甚至可能发生技术事故,影响企业生产的效能。因此,开发一种基于IOS的响应时间可控的内网可达性检测系统是非常必要的。


【发明内容】

[0003]本发明的第一目的在于提供一种时间可控的IOS内网可达性检测系统;第二目的在于提供所述时间可控的IOS内网可达性检测系统的使用方法。
[0004]本发明的第一目的是这样实现的,包括参数设置模块、事件监听模块、发起连接模块、结果分析模块,其中:
参数设置模块:用于设置可达性检测的相关参数;
事件监听模块:用于监听网络状态变化的广播;
发起连接模块:用于建立socket,并发起对目标主机的连接;
结果分析模块:用于分析事件监听模块中的广播和发起连接返回的信息,得出网络连接的具体状态。
[0005]本发明的第二目的是这样实现的,包括以下步骤:
A、参数设置模块初始化待定参数,并通过人机交互或程序赋值的方式,将具体参数数值传递到待定参数中;
B、事件监听模块不间断地监听网络状态变化事件,一旦接收到关注事件的广播,则调用发起连接模块;
C、发起连接模块创建非阻塞模式的socket,并通过connect函数连接参数设置中企业内部网的目标机,最后根据参数设置模块中的返回时间参数,使用select函数检测是否socket处于何种状态;
D、分析事件监听模块中的广播类型和socket的返回状态代码,获得网络可达性结果。
[0006]本发明克服了 IOS的SDK中ReachabiIity库检测内网可达性时间过长的问题,本发明利用objective-c可混合编程,并支持完整C语言Socket的特性,综合利用Reachability库能够接收系统中网络事件广播的优势,和C语言中Socket异步连接的时间参数可控的特征,既保证了检测的准确性,又提升了检测的时效性。

【专利附图】

【附图说明】
[0007]图I为本发明时间可控的IOS内网可达性检测系统示意图;
图2为本发明时间可控的IOS内网可达性检测系统流程示意图。

【具体实施方式】
[0008]下面结合附图对本发明作进一步的说明,但不以任何方式对本发明加以限制,基于本发明教导所作的任何变换或替换,均属于本发明的保护范围。
[0009]本发明所述时间可控的IOS内网可达性检测系统,包括参数设置模块、事件监听模块、发起连接模块、结果分析模块,其中:
参数设置模块:用于设置可达性检测的参数;
事件监听模块:用于监听网络状态变化的广播;
发起连接模块:用于建立socket,并发起对目标主机的连接;
结果分析模块:用于分析事件监听模块中的广播和发起连接返回的信息,得出网络连接的具体状态。
[0010]参数设置模块中所述的参数包括目标域名或地址、网关地址和等待时间。
[0011]参数设置模块中所述的等待时间设置为5秒。
[0012]事件监听模块中所述的网络状态变化的广播包括,无网状态和有网状态的切换广播,wifi信号和3G信号的切换广播。
[0013]发起连接模块中所述的socket为异步方式创建,其创建参数从参数设置模块中获取。
[0014]结果分析模块中所述的网络连接的具体状态包括Wifi网络可达,3G网络可达和不可达三种状态。
[0015]本发明所述的基于IOS的内网可达性检测系统的使用方法,包括以下步骤:
A、参数设置模块初始化待定参数,并通过人机交互或程序赋值的方式,将具体参数数值传递到待定参数中;
B、事件监听模块不间断地监听网络状态变化事件,一旦接收到关注事件的广播,则调用发起连接模块;
C、发起连接模块创建非阻塞模式的socket,并通过connect函数连接参数设置中企业内部网的目标机,最后根据参数设置模块中的返回时间参数,使用select函数检测是否socket处于何种状态;
D、分析事件监听模块中的广播类型和socket的返回状态代码,获得网络可达性结果。
[0016]本发明克服SDK中Reachability库对于内网可达性测试时间过长的问题,提供了一种准确性高,时效性强的内网可达性测试系统,该系统利用object-c的混合编程机制,综合利用Reachability库和socket类的优势,在Reachability库准确判断网络状态变化事件的同时,异步建立socket,尝试与远程目标进行连接,在规定的时间内返回连接结果,最后综合分析网络状态变化事件和连接返回结果,得到内网可达性的检测结果,为应用层的网络交互与通信提供前置性的检测,尽量降低应用软件在内网服务中的无效操作。
[0017]本发明所述的方法首先设置模块初始化待定参数,这些参数包括目标域名或地址,网关地址和等待时间等,为后续的方法步骤提供参数指导;其次,注册监听Reachability库中wifi和3g网络可达性事件,通过网络变化时的回调函数检测当前网络是否处于联网状态,如标识网络可达此时存在2种可能性:一网络处于连通状态,但不在企业内网环境,二网络处于连通状态,并同时处于企业内网环境;再次,建立socket准备发起对目标主机的连接,设置该socket为非阻塞模式,若socket为阻塞模式,socket在调用connect函数且无法立即建立连接时,connect函数会出现无限期的阻滞状态,这在移动网络变化的状态下无法准确获得结果,若socket为非阻塞模式,connect函数在无法立即建立连接时则会以一种异步的方式创建socket连接;最后,通过connect函数连接企业内部网络,用select函数检测是否socket处在一个准备完成的状态,包括读状态和写状态或异常状态,使用select的特点在于,它接收一个时间结构参数,该时间结构可以精确到微秒,用来控制select完成操作的最大时间量,即可控制等待时间。另外,本发明为了平衡用户等待时间接受度和网络可达性容忍度,select的时间参数默认设定为5秒,意味着用户最多在内部网络可达性失效5秒后即可获得通知,这种通知是实时的,也符合移动网络应用的一般特点。
[0018]本发明特点:
A.系统中使用Reachability库,能够及时准确地接收到网络事件广播,为可达性检测做好准备。
[0019]B.系统中利用C语言Socket的特性,在select函数中设置等待时间值,保证系统在可控时间内获取到检测结果。
[0020]C.本发明平衡用户等待时间接受度和网络可达性容忍度两者的关系,将select中的时间参数默认设定为5秒。
[0021]如图2所示,该图表明系统工作流程及实现处理方法,具体实现方法如下:
1、初始化目标域名或地址,网关地址和等待时间等系统参数;
2、网络可达性事件的注册监听;
3、若监听到关注的网络事件,则发起内网连接尝试;
4、获取连接结果并进行分析;
若连接成功,则表明内网可达,若连接失败,则表明内网不可达。
【权利要求】
1.一种时间可控的1S内网可达性检测系统,其特征在于包括参数设置模块、事件监听模块、发起连接模块、结果分析模块,其中: 参数设置模块:用于设置可达性检测的参数; 事件监听模块:用于监听网络状态变化的广播; 发起连接模块:用于建立socket,并发起对目标主机的连接; 结果分析模块:用于分析事件监听模块中的广播和发起连接返回的信息,得出网络连接的具体状态。
2.根据权利要求1所述的时间可控的1S内网可达性检测系统,其特征在于所述参数设置模块中的参数包括目标域名或地址、网关地址和等待时间。
3.根据权利要求2所述的时间可控的1S内网可达性检测系统,其特征在于所述参数设置模块中的等待时间设置为5秒。
4.根据权利要求1或3所述的时间可控的1S内网可达性检测系统,其特征在于所述事件监听模块中的网络状态变化的广播包括:无网状态和有网状态的切换广播,wifi信号和3G信号的切换广播。
5.根据权利要求1所述的时间可控的1S内网可达性检测系统,其特征在于所述发起连接模块中的socket为异步方式创建,其创建参数从参数设置模块中获取。
6.根据权利要求1所述的时间可控的1S内网可达性检测系统,其特征在于所述结果分析模块中的网络连接的具体状态包括wifi网络可达,3G网络可达和不可达三种状态。
7.一种权利要求1飞任一所述的1S内网可达性检测系统的使用方法,其特征在于包括以下步骤: A、参数设置模块初始化待定参数,并通过人机交互或程序赋值的方式,将具体参数数值传递到待定参数中; B、事件监听模块不间断地监听网络状态变化事件,一旦接收到关注事件的广播,则调用发起连接模块; C、发起连接模块创建非阻塞模式的socket,并通过connect函数连接参数设置中企业内部网的目标机,最后根据参数设置模块中的返回时间参数,使用select函数检测是否socket处于何种状态; D、分析事件监听模块中的广播类型和socket的返回状态代码,获得网络可达性结果。
【文档编号】H04W24/02GK104244290SQ201410502275
【公开日】2014年12月24日 申请日期:2014年9月27日 优先权日:2014年9月27日
【发明者】李 杰, 侯文彪 申请人:昆明钢铁集团有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1