一种基于Android系统的多协议通讯框架及通讯方法

文档序号:7812214阅读:201来源:国知局
一种基于Android系统的多协议通讯框架及通讯方法
【专利摘要】一种基于Android系统的多协议通讯框架及通讯方法,涉及Android系统的网络通讯【技术领域】。该多协议通讯框架包括依次连接的NI0线程池模块、NI0网络连接模块和NI0数据处理模块。其中,所述NI0线程池模块根据每次接收到的至少一个连接请求,创建一个NI0通讯线程;所述NI0网络连接模块根据每个连接请求的类型创建相应的连接通道及相应的数据处理接口,并将数据处理接口接收到的数据传送给NI0数据处理模块;所述NI0数据处理模块用于对NI0网络连接模块传来的数据进行处理。本发明支持多种协议的并发请求,能高效、快捷地实现网络通讯,降低了资源和时间的消耗。
【专利说明】-种基于Android系统的多协议通讯框架及通讯方法

【技术领域】
[0001] 本发明涉及Android系统的网络通讯【技术领域】,具体来讲是一种基于Android系 统的多协议通讯框架及通讯方法。

【背景技术】
[0002] Android是新一代的智能平台,越来越多的电子终端使用Android作为操作系统, 使得Android系统的电子终端的用户与日俱增。近年来,Android系统的携着其显著的开 放性、丰富的硬件选择(手机或者平板电脑等产品)、强大的网络应用和全球IT企业都助 力Android等优势,成为时代潮流的引领者。越来越多的人开始使用带有Android系统的 手机或者平板电脑等产品(最新数据显示智能手机的市场份额为88%)。但Android系统 在多协议信息交换和应对高并发网络请求方面的应用技术尚未成熟,特别是Android系统 的通讯无法快速高效地进行多种协议切换。
[0003] 目前,现已存在的Android系统通讯多采用多线程处理多个连接的一对一方式。 当有10000个连接请求时,可能就需要有10000个线程来处理,资源消耗极大,且会产生阻 塞。而一旦阻塞产生就会带来大量的线程频繁地进行上下文切换,从而使得时间消耗过大。 另外,现有的Android系统通讯中,多协议并发请求没有系统的整合在一起,无法快速地实 现多种协议之间的切换,使得通讯连接请求的处理速度较慢。


【发明内容】

[0004] 针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Android系统的多 协议通讯框架及通讯方法,支持多种协议的并发请求,能高效、快捷地实现网络通讯,降低 了资源和时间的消耗。
[0005] 为达到以上目的,本发明提供一种基于Android系统的多协议通讯框架,包括:依 次连接的ΝΙ0线程池模块、ΝΙ0网络连接模块和ΝΙ0数据处理模块。其中,所述ΝΙ0线程池 模块根据每次接收到的至少一个连接请求,创建一个ΝΙ0通讯线程,所述ΝΙ0通讯线程将每 个连接请求发送给ΝΙ0网络连接模块;所述ΝΙ0网络连接模块根据每个连接请求的类型创 建相应的连接通道及相应的数据处理接口,并将数据处理接口接收到的数据传送给ΝΙ0数 据处理模块;所述ΝΙ0数据处理模块用于对ΝΙ0网络连接模块传来的数据进行处理。
[0006] 在上述技术方案的基础上,所述ΝΙ0线程池模块每次接收到的连接请求的个数范 围为1?5。
[0007] 在上述技术方案的基础上,所述连接请求的类型包括TCP连接、UDP连接和HTTP连 接。
[0008] 在上述技术方案的基础上,所述ΝΙ0数据处理模块包括处理TCP连接数据的TCP 数据处理模块、处理m)P连接数据的UDP数据处理模块以及处理HTTP连接数据的HTTP数 据处理模块。
[0009] 本发明还提供一种基于Android系统的多协议通讯方法,包括如下步骤:
[0010] SI :初始化NI0线程池模块,并接收连接请求,且NI0线程池模块每次接收至少一 个连接请求。
[0011] S2 :ΝΙ0线程池模块每次接收到所述至少一个连接请求后,就创建一个ΝΙ0通讯线 程,所述ΝΙ0通讯线程将每个连接请求发送给ΝΙ0网络连接模块。
[0012] S3 :ΝΙ0网络连接模块根据每个连接请求的类型,创建相应的连接通道及相应的 数据处理接口。
[0013] S4 :ΝΙ0通讯线程对每个数据处理接口进行监听,判断是否有数据到来,若是,则 进入S5,若否,则继续监听。
[0014] S5 :ΝΙ0通讯线程通知ΝΙ0网络连接模块,并将数据提交给ΝΙ0网络连接模块。
[0015] S6 :ΝΙ0网络连接模块在接收到数据之后,交由ΝΙ0数据处理模块进行处理。
[0016] 在上述技术方案的基础上,步骤S1中,所述连接请求的类型包括TCP连接、UDP连 接和HTTP连接。
[0017] 在上述技术方案的基础上,步骤S3中,ΝΙ0网络连接模块,根据TCP连接的连接请 求创建套接字通道以及相应的ΝΙ0处理器接口;根据UDP连接的连接请求创建数据报通道 以及相应的ΝΙ0处理器接口;根据HTTP连接的连接请求创建套接字通道以及相应的ΝΙ0处 理器接口。
[0018] 在上述技术方案的基础上,所述ΝΙ0数据处理模块包括TCP数据处理模块、UDP数 据处理模块以及HTTP数据处理模块。步骤S6中,ΝΙ0网络连接模块在接收到数据之后,将 根据数据的连接通道判断属于TCP连接、UDP连接、HTTP连接中的哪一种,并交由ΝΙ0数据 处理模块中相应的TCP数据处理模块、UDP数据处理模块、HTTP数据处理模块进行处理。
[0019] 在上述技术方案的基础上,所述步骤S6中,ΝΙ0数据处理模块进行处理时,若出现 数据接收不完全的情况,表明连接断开,则反馈需要重新连接的消息给ΝΙ0网络连接模块; 若出现接收不到数据的情况,表明连接超时,则提示ΝΙ0网络连接模块检查连接通道及相 应的数据处理接口,并重新连接;若出现接收的数据错误的情况,则通知ΝΙ0网络连接模块 重新指定连接通道及相应的数据处理接口。
[0020] 本发明的有益效果在于:
[0021] 1、本发明采用了线程池模块的设计,形成了 NI0(N〇n-bl〇cking 1/0,非阻塞通讯 模式)的通讯方法。该方法使得处理连接的线程数和连接请求的个数没有一对一的联系, 也就是说处理10000个连接请求,ΝΙ0方式不需要10000个线程,可以用2000或更少的线 程来处理。这样,就避免了大量的线程频繁地进行上下文切换,能高效、快捷地实现网络通 讯,降低资源和时间的消耗。
[0022] 2、本发明将多协议并发请求系统的整合在一起,同时支持TCP(Transmission Control Protocol,传输控制协议)、UDP(User Data Protocol,用户数据报协议)以及 HTTP (Hypertext Transfer Protocol,超文本传送协议),能够方便快捷地在多协议之间切 换,大幅提升了系统工作效率。
[0023] 3、本发明的ΝΙ0数据处理模块还能实现连接断开、连接超时以及数据接收错误等 故障的处理,提升了系统的容错性,保证了系统运行的稳定性。

【专利附图】

【附图说明】
[0024] 图1为本发明基于Android系统的多协议通讯框架的结构框图;
[0025] 图2为本发明基于Android系统的多协议通讯方法的流程图。

【具体实施方式】
[0026] 以下结合附图对本发明的实施例作进一步详细说明。
[0027] 如图1所示,本发明提供一种基于Android系统的多协议通讯框架,包括依次连接 的ΝΙ0线程池模块、ΝΙ0网络连接模块和ΝΙ0数据处理模块。
[0028] 其中,所述ΝΙ0线程池模块根据每次接收到的至少一个连接请求,创建一个ΝΙ0通 讯线程,所述ΝΙ0通讯线程将每个连接请求发送给ΝΙ0网络连接模块。ΝΙ0线程池模块的设 计,形成了非阻塞通讯模式,使得处理连接的ΝΙ0通讯线程的个数和连接请求的个数无需 一对一的联系,避免了大量的线程频繁地进行上下文切换,能高效、快捷地实现网络通讯, 降低资源和时间的消耗。并且,ΝΙ0线程池模块每次接收到的连接请求的个数范围为1? 5,连接请求的类型包括TCP连接、UDP连接和HTTP连接,能同时支持TCP协议、UDP协议以 及HTTP协议,能够方便快捷地在多协议之间切换,大幅提升了系统工作效率。
[0029] 所述ΝΙ0网络连接模块根据每个连接请求的类型创建相应的连接通道及相应的 数据处理接口,并将数据处理接口接收到的数据传送给ΝΙ0数据处理模块。
[0030] 所述ΝΙ0数据处理模块用于对ΝΙ0网络连接模块传来的数据进行处理。其中,所 述ΝΙ0数据处理模块包括处理TCP连接数据的TCP数据处理模块、处理UDP连接数据的UDP 数据处理模块以及处理HTTP连接数据的HTTP数据处理模块。
[0031] 如图2所示,一种基于Android系统的多协议通讯方法,包括如下步骤:
[0032] S1 :初始化ΝΙ0线程池模块,并接收连接请求,且ΝΙ0线程池模块每次接收至少一 个连接请求。其中,连接请求的类型包括TCP连接、UDP连接和HTTP连接。
[0033] S2 :ΝΙ0线程池模块每次接收到所述至少一个连接请求后,就创建一个ΝΙ0通讯线 程,所述ΝΙ0通讯线程将每个连接请求发送给ΝΙ0网络连接模块;
[0034] S3 :ΝΙ0网络连接模块根据每个连接请求的类型,创建相应的连接通道及相应的 数据处理接口。具体来说,根据TCP连接的连接请求创建套接字通道(SocketChannel) 以及相应的ΝΙ0处理器(NIOHandler)接口;根据UDP连接的连接请求创建数据报通道 (DatagramChannel)以及相应的ΝΙ0处理器接口;根据HTTP连接的连接请求创建套接字通 道以及相应ΝΙ0处理器接口。
[0035] S4 :ΝΙ0通讯线程对每个数据处理接口进行监听,判断是否有数据到来,若是,则 进入S5,若否,则继续监听;
[0036] S5 :ΝΙ0通讯线程通知ΝΙ0网络连接模块,并将数据提交给ΝΙ0网络连接模块;
[0037] S6 :ΝΙ0网络连接模块在接收到数据之后,交由ΝΙ0数据处理模块进行处理,所述 ΝΙ0数据处理模块包括TCP数据处理模块、UDP数据处理模块以及HTTP数据处理模块。ΝΙ0 网络连接模块将根据数据的连接通道判断属于TCP连接、UDP连接、HTTP连接中的哪一种, 并交由ΝΙ0数据处理模块中相应的TCP数据处理模块、UDP数据处理模块、HTTP数据处理模 块进行处理。
[0038] ΝΙ0数据处理模块进行处理时,若出现数据接收不完全的情况,表明连接断开,则 反馈需要重新连接的消息给ΝΙ0网络连接模块;若出现接收不到数据的情况,表明连接超 时,则提示NIO网络连接模块检查连接通道及相应的数据处理接口,并重新连接;若出现 接收的数据错误的情况,则通知NI0网络连接模块重新指定连接通道及相应的数据处理接 口。NI0数据处理模块的故障处理功能,提升了系统的容错性,保证了系统运行的稳定性。
[0039] 本发明不局限于上述实施方式,对于本【技术领域】的普通技术人员来说,在不脱离 本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护 范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【权利要求】
1. 一种基于Android系统的多协议通讯框架,其特征在于:包括依次连接的NIO线程 池模块、NI0网络连接模块和NI0数据处理模块; 其中,所述NI0线程池模块根据每次接收到的至少一个连接请求,创建一个NI0通讯线 程,所述NI0通讯线程将每个连接请求发送给NI0网络连接模块; 所述NI0网络连接模块根据每个连接请求的类型创建相应的连接通道及相应的数据 处理接口,并将数据处理接口接收到的数据传送给NI0数据处理模块; 所述NI0数据处理模块用于对NI0网络连接模块传来的数据进行处理。
2. 如权利要求1所述的基于Android系统的多协议通讯框架,其特征在于:所述NI0线 程池模块每次接收到的连接请求的个数范围为1?5。
3. 如权利要求1所述的基于Android系统的多协议通讯框架,其特征在于:所述连接 请求的类型包括TCP连接、UDP连接和HTTP连接。
4. 如权利要求1所述的基于Android系统的多协议通讯框架,其特征在于:所述NI0数 据处理模块包括处理TCP连接数据的TCP数据处理模块、处理UDP连接数据的UDP数据处 理模块以及处理HTTP连接数据的HTTP数据处理模块。
5. -种基于权利要求1所述多协议通讯框架的多协议通讯方法,其特征在于,包括如 下步骤: 51 :初始化NI0线程池模块,并接收连接请求,且NI0线程池模块每次接收至少一个连 接请求; 52 :NI0线程池模块每次接收到所述至少一个连接请求后,就创建一个NI0通讯线程, 所述NI0通讯线程将每个连接请求发送给NI0网络连接模块; 53 :NI0网络连接模块根据每个连接请求的类型,创建相应的连接通道及相应的数据 处理接口; 54 :NI0通讯线程对每个数据处理接口进行监听,判断是否有数据到来,若是,则进入 S5,若否,则继续监听; 55 :NI0通讯线程通知NI0网络连接模块,并将数据提交给NI0网络连接模块; 56 :NI0网络连接模块在接收到数据之后,交由NI0数据处理模块进行处理。
6. 如权利要求5所述的多协议通讯方法,其特征在于:步骤S1中,所述连接请求的类 型包括TCP连接、UDP连接和HTTP连接。
7. 如权利要求6所述的多协议通讯方法,其特征在于:步骤S3中,NI0网络连接模块, 根据TCP连接的连接请求创建套接字通道以及相应的NI0处理器接口;根据UDP连接的连 接请求创建数据报通道以及相应的NI0处理器接口;根据HTTP连接的连接请求创建套接字 通道以及相应的NI0处理器接口。
8. 如权利要求7所述的多协议通讯方法,其特征在于:所述NI0数据处理模块包括TCP 数据处理模块、m)P数据处理模块以及HTTP数据处理模块;步骤S6中,NI0网络连接模块 在接收到数据之后,将根据数据的连接通道判断属于TCP连接、UDP连接、HTTP连接中的哪 一种,并交由NI0数据处理模块中相应的TCP数据处理模块、UDP数据处理模块、HTTP数据 处理模块进行处理。
9. 如权利要求8所述的多协议通讯方法,其特征在于:所述步骤S6中,NI0数据处理模 块进行处理时,若出现数据接收不完全的情况,表明连接断开,则反馈需要重新连接的消息 给NIO网络连接模块;若出现接收不到数据的情况,表明连接超时,则提示NIO网络连接模 块检查连接通道及相应的数据处理接口,并重新连接;若出现接收的数据错误的情况,则通 知NI0网络连接模块重新指定连接通道及相应的数据处理接口。
【文档编号】H04L29/06GK104219231SQ201410419975
【公开日】2014年12月17日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】金鑫 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1