获取网络数据的方法及装置的制作方法

文档序号:7778031阅读:155来源:国知局
专利名称:获取网络数据的方法及装置的制作方法
技术领域
本发明涉及网络通信领域,特别涉及一种获取网络数据的方法及装置。
背景技术
通过诸如手机、平板电脑、MID (Mobile Internet Devices,移动互联网设备)之类的移动终端进行上网,是现代社会中人们常用的一种上网方式。在用户采用这些移动终端访问网络时,通常利用运行于这些移动终端上的浏览器访问采用WAP (Wireless Application Protocol,无线应用协议)协议的无线网络。现有技术中,这些浏览器在访问采用WAP协议的无线网络时,获取网络数据的步骤主要为:第一,创建Socket (Socket,套接字)并连接目标网关;第二,发送连接请求;第三,接收网络数据;第四,完成关闭Socket。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:这些浏览器打开一个网页链接以获取网络数据时,耗时最多的几个步骤中就包括“创建Socket,并连接目标网关”这一步骤。在较低端的移动终端上,“创建Socket并连接目标网关”这一步骤一般都需要1.5秒到5秒不等的时间,这样的延时给用户带来了糟糕的体验。同时,这些浏览器每次获取网络数据时,都需要进行一次“创建Socket并连接目标网关”的过程,浪费了较多的时间。

发明内容
为了能够使浏览器尽可能减少“创建Socket并连接目标网关”这个重复过程,本发明实施例提供了一种获取网络数据的方法及装置。所述技术方案如下:根据本发明的一个方面,本发明实施例提供了一种获取网络数据的方法,所述方法包括:在需要获取网络数据时,判断是否存在空闲的套接字;如果存在空闲的套接字,则采用所述空闲的套接字获取网络数据。进一步地,所述判断是否存在空闲的套接字之后,还包括:如果不存在空闲的套接字,则创建新的套接字;采用所述新的套接字发出连接请求,以获取网络数据。进一步地,所述判断是否存在空闲的套接字之前,还包括:预先创建用于存储连接固定网关的套接字的套接字池;所述判断是否存在空闲的套接字具体包括:判断所述套接字池中是否存在空闲的套接字。进一步地,所述采用所述空闲的套接字获取网络数据具体包括:将所述空闲的套接字标记为正在使用;采用所述被标记为正在使用的套接字发出连接请求,以获取网络数据。进一步地,采用套接字获取网络数据之后,还包括:判断所述套接字是所述套接字池中的套接字还是新创建的套接字;如果是所述套接字池中的套接字,则将所述套接字标记为空闲;如果是新创建的套接字,则将所述新创建的套接字标记为空闲,并放入所述套接字池。
进一步地,所述方法还包括:判断所述套接字池中的空闲的套接字的空闲时间是否超过预定阀值;如果是,则关闭所述空闲的套接字并将其从所述套接字池移除。根据本发明的另一方面,本发明实施例还提供一种获取网络数据的装置,所述装置包括:套接字管理模块,用于在需要获取网络数据时,判断是否存在空闲的套接字;套接字使用模块,用于在所述套接字管理模块判断存在空闲的套接字时,采用所述空闲的套接字获取网络数据。进一步地,所述获取网络数据的装置还包括套接字创建模块;所述套接字创建模块,用于在所述套接字管理模块判断不存在空闲的套接字时,创建新的套接字;所述套接字使用模块,还用于采用所述新的套接字发出连接请求,以获取网络数据。进一步地,所述获取网络数据的装置还包括:套接字池,用于存储连接固定网关的套接字;所述套接字管理模块,用于判断所述套接字池中是否存在空闲的套接字。进一步地,所述套接字管理模块具体包括:套接字标记单元;所述套接字标记单元,用于将所述空闲的套接字标记为正在使用;所述套接字使用模块,用于采用所述被标记为正在使用的套接字发出连接请求,以获取网络数据。进一步地,所述套接字管理模块还包括:套接字判断单元;所述套接字判断单元,用于所述套接字使用模块采用套接字获取网络数据之后,判断所述套接字是所述套接字池中的套接字还是所述套接字创建模块新创建的套接字;所述套接字标记单元,还用于在所述套接字判断单元判断所述套接字是所述套接字池中的套接字时,将其标记为空闲;所述套接字标记单元,还用于在所述套接字判断单元判断所述套接字是所述套接字创建模块新创建的套接字时,则将所述新创建的套接字标记为空闲,并放入所述套接字池。进一步地,所述套接字管理模块还包括:超时判断单元和套接字移除单元;所述超时判断单元,用于判断所述套接字池中的空闲的套接字的空闲时间是否超过预定阀值;所述套接字移除单元,用于所述超时判断单元判断所述套接字池中的空闲的套接字的空闲时间超过预定阀值时,关闭所述套接字并将其从所述套接字池移除。本发明实施例提供的技术方案带来的有益效果是:通过对已创建的套接字进行复用,节省了现有技术中耗时较多的“创建Socket并连接网关”的过程,使得浏览器不需要每次获取网络数据时都进行一次“创建Socket并连接网关”的步骤,从而能够以更快的速度实现网络数据的获取。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的获取网络数据的方法的方法流程图;图2是本发明实施例二提供的获取网络数据的方法的方法流程图;图3是本发明实施例三提供的获取网络数据的装置的结构方框图;图4是本发明实施例三提供的套接字管理模块的结构方框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一请参考图1,其示出了本发明实施例一提供的获取网络数据的方法的方法流程图。此获取网络数据的方法包括:步骤102,在需要获取网络数据时,判断是否存在空闲的套接字。在采用WAP协议的传统联网方式下,浏览器每次请求网络数据时都会创建套接字来连接运营商提供的网关服务器,比如运营商是中国移动或者中国联通时,浏览器每次请求网络数据时都会连接IP地址:10.0.0.172,端口:80 ;再比如运营商是中国电信时,浏览器每次请求网络数据时都会连接IP地址:10.0.0.200,端口:80。而浏览器创建套接字来连接运营商提供的网关服务器的过程是比较耗时的,为了能够将这个重复的过程尽可能地省略,首先可以创建套接字池,这个套接字池用于存储可复用的连接上运营商提供的网关服务器的套接字。换句话说,可以首先在终端或者说浏览器中实现一套接字池机制,对于成功连接上网关的套接字,在当前连接使用完毕后并不马上将其关闭,而是将其放入套接字池当中,并将其标记为空闲以便复用。在浏览器需要获取网络数据时,可以首先判断套接字池中是否存在空闲的套接字。当然,也可以采取其它存储方式存储这些连接固定网关的套接字。步骤104,如果存在空闲的套接字,则采用空闲的套接字获取网络数据。如果浏览器判断出套接字池中存在空闲的套接字,则将这个空闲的套接字标记为正在使用,并利用这个正在使用的套接字直接发出连接请求,从而不需要重复进行“创建套接字,并连接网关”这个过程。综上所述,本实施例中提供的获取网络数据的方法通过对已创建的套接字进行复用,节省了现有技术中耗时较多的“创建Socket并连接网关”的过程,使得浏览器不需要每次获取网络数据时都进行一次“创建Socket并连接网关”的步骤,从而能够以更快的速度实现网络数据的获取。实施例二请参考图2,其示出了本发明实施例二提供的获取网络数据的方法的方法流程图。此获取网络数据的方法包括:步骤201,预先创建用于存储连接固定网关的套接字的套接字池。首先需要创建套接字池,这个套接字池用于存储可复用的连接上运营商提供的网关服务器的套接字,所述固定网关可以是中国联通或者中国移动提供的IP地址:10.0.0.172,端口:80 ;也可以是中国电信提供的IP地址:10.0.0.200,端口:80,再或者其
它国家的网络服务商提供的其它网关。换句话说,首先在终端或者说浏览器中实现一套接字池机制,对于成功连接上网关的套接字,在当前连接使用完毕后并不马上将其关闭,而是将其放入套接字池当中,并将其标记为空闲以便复用。步骤202,在浏览器需要获取网络数据时,判断套接字池中是否存在空闲的套接字;如果是,则进入步骤203 ;如果不是,则进入步骤204。步骤203,如果判断出套接字池中存在空闲有效的套接字,则将这个空闲的套接字标记为正在使用,然后利用这个正在使用的套接字直接发出连接请求,从而不需要重复进行“创建套接字,并连接网关”这个过程。步骤204,如果判断出套接字池中不存在空闲有效的套接字,则按照传统方式创建新的套接字,新创建的套接字将被标记为正在使用,然后利用所述新的套接字发出连接请求,以获取网络数据。如果创建不成功,则进入步骤205。步骤205,如果创建不成功,则返回失败信息。步骤206,利用步骤203中的标识为正在使用的套接字或者步骤204中新创建的套接字完成数据交互,当使用套接字获取网络数据获取之后,进入步骤207。步骤207,判断这个套接字是套接字池中的套接字还是新创建的套接字,如果是套接字池中的套接字,则进入步骤208 ;如果是新创建的套接字,则进入步骤209。步骤208,将这个位于套接字池中的套接字标记为空闲。步骤209,将从步骤104中新创建并使用完毕的套接字标记为空闲,并放入套接字池。当浏览器再次需要获取网络数据时,则返回步骤202 ;当浏览器较长时间都没有获取网络数据时,则进入步骤210。步骤210,判断套接字池中空闲的套接字的空闲时间是否超过预定阀值,如果是,则关闭该套接字并将其从套接字池移除。由于运营商提供的网关一般都会设置一个超时时间,如果套接字池中的套接字连上网关后很长一段时间都没有任何操作,那么网关会主动的关闭该网络连接,此时会有相应的信号发送到浏览器,此时浏览器需要关闭相应的套接字并将其从套接字池中移除。综上所述,本实施例中提供的获取网络数据的方法通过对已创建的套接字进行复用,节省了现有技术中耗时较多的“创建Socket并连接网关”的过程,使得浏览器不需要每次获取网络数据时都进行一次“创建Socket并连接网关”的步骤,从而能够以更快的速度实现网络数据的获取。同时,通过对超时后的套接字进行移除的机制,一方面使得套接字池中不会存在无效的套接字;另一方面,套接字池中的套接字不会越积越多,而导致套接字池中发生满溢的情况。实施例三请参考图3,其示出了本发明实施例三提供的获取网络数据的装置的结构方框图。此获取网络数据的装置包括套接字池310、套接字管理模块320、套接字使用模块330和套接字创建模块340。套接字池310用于存储连接固定网关的套接字。简单来讲,可以在终端或者说浏览器中实现一套接字池机制,对于成功连接上运营商提供的网关服务器的套接字,在当前连接使用完毕后并不马上将其关闭,而是将其放入套接字池310当中,并将其标记为空闲以便复用。套接字管理模块320用于在浏览器需要获取网络数据时,判断套接字池310中是否存在空闲的套接字。套接字管理模块320可以具体包括有套接字标记单元322,如图4所示。如果套接字管理模块320判断存在空闲的套接字,则套接字标记单元322可以将该空闲的套接字标记为正在使用,并将该被标记为正在使用的套接字交由套接字使用模块330使用。如果套接字管理模块320判断不存在空闲的套接字,则套接字管理模块320通知套接字创建模块340创建新的套接字。套接字使用模块330可以用于利用被套接字管理模块320标识为正在使用的套接字发出连接请求以完成获取网络数据的过程。套接字创建模块340用于创建新的套接字,然后套接字使用模块330还可以利用套接字创建模块340创建的新的套接字发出连接请求,以获取网络数据。如果套接字创建模块340创建新的套接字不成功,则套接字创建模块340返回失败。当套接字使用模块330采用一个套接字获取网络数据完毕后,套接字管理模块320还可以具体包括有套接字判断单元324,套接字判断单元324用于判断套接字使用模块330使用完毕的套接字是套接字池310中的套接字还是套接字创建模块340新创建的套接字,如果是套接字池中的套接字,则套接字标记单元322继续将该套接字标记为空闲;如果是新创建的套接字,则将这个由套接字创建模块340创建的新套接字放入套接字池310,并由套接字标记单元322标记为空闲。套接字管理模块320还可以包括有超时判断单元326和套接字移除单元328,超时判断单元326判断位于套接字池310中的空闲的套接字的空闲时间是否超过预定阀值,如果是,则套接字移除单元328用于关闭该超时后的套接字并将其从套接字池310中移除。综上所述,本实施例中提供的获取网络数据的装置通过对已创建的套接字进行复用,节省了现有技术中耗时较多的“创建Socket并连接网关”的过程,使得浏览器不需要每次获取网络数据时都进行一次“创建Socket并连接网关”的步骤,从而能够以更快的速度实现网络数据的获取。需要说明的是:上述实施例提供的获取网络数据的装置在本文实施例中描述时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的获取网络数据的装置与获取网络数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种获取网络数据的方法,其特征在于,所述方法包括: 在需要获取网络数据时,判断是否存在空闲的套接字; 如果存在空闲的套接字,则采用所述空闲的套接字获取网络数据。
2.根据权利要求1所述的获取网络数据的方法,其特征在于,所述判断是否存在空闲的套接字之后,还包括: 如果不存在空闲的套接字,则创建新的套接字; 采用所述新的套接字发出连接请求,以获取网络数据。
3.根据权利要求1或2所述的获取网络数据的方法,其特征在于,所述判断是否存在空闲的套接字之前,还包括: 预先创建用于存储连接固定网关的套接字的套接字池; 所述判断是否存在空闲的套接字具体包括: 判断所述套接字池中是否存在空闲的套接字。
4.根据权利要求3所述的获取网络数据的方法,其特征在于,所述采用所述空闲的套接字获取网络数据具体包括: 将所述空闲的套接字标记为正在 使用; 采用所述被标记为正在使用的套接字发出连接请求,以获取网络数据。
5.根据权利要求3所述的获取网络数据的方法,其特征在于,采用套接字获取网络数据之后,还包括: 判断所述套接字是所述套接字池中的套接字还是新创建的套接字; 如果是所述套接字池中的套接字,则将所述套接字标记为空闲; 如果是新创建的套接字,则将所述新创建的套接字标记为空闲,并放入所述套接字池。
6.根据权利要求3所述的获取网络数据的方法,其特征在于,所述方法还包括: 判断所述套接字池中的空闲的套接字的空闲时间是否超过预定阀值; 如果是,则关闭所述空闲的套接字并将其从所述套接字池移除。
7.一种获取网络数据的装置,其特征在于,其包括: 套接字管理模块,用于在需要获取网络数据时,判断是否存在空闲的套接字; 套接字使用模块,用于在所述套接字管理模块判断存在空闲的套接字时,采用所述空闲的套接字获取网络数据。
8.根据权利要求7所述获取网络数据的装置,其特征在于,所述获取网络数据的装置还包括套接字创建模块; 所述套接字创建模块,用于在所述套接字管理模块判断不存在空闲的套接字时,创建新的套接字; 所述套接字使用模块,还用于采用所述新的套接字发出连接请求,以获取网络数据。
9.根据权利要求7或8所述的获取网络数据的装置,其特征在于,所述获取网络数据的装置还包括: 套接字池,用于存储连接固定网关的套接字; 所述套接字管理模块,用于判断所述套接字池中是否存在空闲的套接字。
10.根据权利要求9所述的获取网络数据的装置,其特征在于,所述套接字管理模块具体包括:套接字标记单元;所述套接字标记单元,用于将所述空闲的套接字标记为正在使用; 所述套接字使用模块,用于采用所述被标记为正在使用的套接字发出连接请求,以获取网络数据。
11.根据权利要求10所述的获取网络数据的装置,其特征在于,所述套接字管理模块还包括:套接字判断单元; 所述套接字判断单元,用于所述套接字使用模块采用套接字获取网络数据之后,判断所述套接字是所述套接字池中的套接字还是所述套接字创建模块新创建的套接字; 所述套接字标记单元,还用于在所述套接字判断单元判断所述套接字是所述套接字池中的套接字时,将其标记为空闲; 所述套接字标记单元,还用于在所述套接字判断单元判断所述套接字是所述套接字创建模块新创建的套接字时,则将所述新创建的套接字标记为空闲,并放入所述套接字池。
12.根据权利要求11所述的获取网络数据的装置,其特征在于,所述套接字管理模块还包括:超时判断单元和套接字移除单元; 所述超时判断单元,用于判断所述套接字池中的空闲的套接字的空闲时间是否超过预定阀值; 所述套接字移除单元, 用于所述超时判断单元判断所述套接字池中的空闲的套接字的空闲时间超过预定阀值时,关闭所述套接字并将其从所述套接字池移除。
全文摘要
本发明公开了一种获取网络数据的方法及装置,属于网络通信领域。所述方法包括在需要获取网络数据时,判断是否存在空闲的套接字;如果是,则采用所述空闲的套接字获取网络数据。本发明通过对已创建的套接字进行复用,节省了现有技术中耗时较多的“创建Socket并连接网关”的过程,使得浏览器不需要每次获取网络数据时都进行一次“创建Socket并连接网关”的步骤,从而能够以更快的速度实现网络数据的获取。本发明可以用于诸如手机、平板电脑之类的移动终端中。
文档编号H04L29/08GK103166994SQ20111041810
公开日2013年6月19日 申请日期2011年12月14日 优先权日2011年12月14日
发明者但文亮 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1