一种基于网络连接池化的网络通信方法及系统技术方案

技术编号:13676949 阅读:46 留言:0更新日期:2016-09-08 03:21
本发明专利技术公开了一种基于网络连接池化的网络通信方法及系统,所述的方法包括:创建一Hash表,并根据预定需求初始化N个网络连接;采用Hash运算对每一个网络连接创建对应的key值,并根据key值将每一个网络连接一一对应存储于Hash表中;当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;根据对应的key值从Hash表中获取对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。通过本发明专利技术的方法,将网络连接进行池化形成网络连接资源池,实现网络连接资源的可控性,按需将资源池中的网络连接分配给客户端,提高整个系统的吞吐量,资源池中的网络连接可以复用,不会出现网络连接资源耗尽的问题。

【技术实现步骤摘要】

本专利技术涉及网络通信
,具体涉及一种基于网络连接池化的网络通信方法及系统
技术介绍
基于TCP/IP协议的阻塞式I/O网络应用程序,采用网络套接字进行通信,如果服务器端处理速度缓慢,在高并发的情况下会出现客户端网络套接字资源耗尽的情况。例如:在1秒内有100个用户通过客户端程序访问服务器端,服务器端程序处理请求并做出响应需要3秒钟,客户端在3秒内就会产生300个客户端套接字与服务器端建立连接,如果客户端没有设置快速回收套接字策略,客户端就会存在很多处于TIME_WAIT状态的连接,在这种场景下,客户端的套接字资源就会耗尽,最终导致程序运行错误。网络套接字属于系统资源,网络套接字耗尽后会影响整个系统的负载量,导致大量处于等待的客户端产生,使得整个系统的性能下降。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于网络连接池化的网络通信方法及系统,能够解决现有技术的不足。本专利技术解决上述技术问题的技术方案如下:一方面,本专利技术提供了一种基于网络连接池化的网络通信方法,包括:S1、创建一Hash表,并根据预定需求初始化N个网络连接,其中,N为正整数;S2、采用Hash运算每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;S4、根据对应的key值从Hash表中获取与客户端对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。另一方面,本专利技术提供了一种基于网络连接池化的网络通信系统,包括:Hash表创建单元,用于创建一Hash表;初始化单元,用于根据预定需求初始化N个网络连接,其中,N为正整数;存储单元,用于采用Hash运算为每一个网络连接创建对应的key值,并根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;key值获取单元,用于当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;网络连接获取单元,用于根据对应的key值从Hash表中获取与客户端对应的网络连接;网络连接单元,用于通过获取的所述网络连接与服务器端进行网络通信。本专利技术提供的一种基于网络连接池化的网络通信方法及系统,将网络连接进行池化形成网络连接资源池,实现网络连接资源的可控性,按需将资源池中的网络连接分配给客户端,用以通过网络连接与服务器端建立网络通信连接,提高整个系统的吞吐量,资源池中的网络连接可以复用,不会出现网络连接资源耗尽的问题。附图说明图1为本专利技术实施例一的一种基于网络连接池化的网络通信方法流程图;图2为建立的网络连接资源池示意图;图3为本专利技术实施例二的一种基于网络连接池化的网络通信系统示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。实施例一、一种基于网络连接池化的网络通信方法。下面结合图1和图2对本实施例提供的方法进行说明。参见图1,本实施例提供的方法包括:S1、创建一Hash表,并根据预定需求初始化N个网络连接。S2、采用Hash运算为每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池。具体的,首先创建一张Hash表,然后根据预定需求初始化N个网络套接字,其中,N为正整数。创建的Hash表用来存放初始化后的网络连接,初始化的网络连接的个数N的取值可由客户端的数量来配置,其中,一个客户端对应一个网络连接,客户端上的一个网络套接字与服务器端上的一个网络套接字共同构成一个网络连接,即客户端通过一条网络连接与服务器端建立网络通信连接。其中,网络连接与服务器端的主机之间具有对应关系,可以为一对一的对应关系,也可以为多对一的对应关系。初始化N个网络套接字后,采用Hash运算为每一个网络连接创建对应的key值,由于网络连接与服务器端的主机之间具有对应关系,因此,本实
施例根据网络连接对应的主机标识,并做Hash运算,得到该网络连接对应的key值。将创建的key值作为网络连接在Hash表中的存放地址,将每一个网络连接对应的存储于Hash表中,形成网络连接资源池。其中,网络连接属于系统资源,因此一个网络连接资源池中的最大网络连接数量是有限的。当客户端的数量增加时,可以动态在网络连接资源池中增加网络连接的数量。S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值。S4、根据对应的key值从Hash表中获取与客户端对应的网络连接与服务器端建立网络连接。具体的,当客户端需要访问服务器端时,根据客户端标识作Hash运算后得到对应的key值,比如,当多个手机需要访问服务器端时,可根据手机号码做Hash运算得到各个手机号码对应的key值,并根据客户端对应的key值从Hah表中获取与客户端对应的网络连接,根据对应的网络连接,客户端通过该网络连接与服务器端建立网络通信连接,可参见图2。在将网络连接存储于Hash表中后,按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测,当检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。另外,对从Hash表中获取的与客户端对应的网络连接进行连接状态的检测,当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。其中,当客户端通过对应的网络连接与服务器端建立连接失败时,客户端使用其继续通过该网络连接与服务器端重新建立连接预定次数。需要说明的是,多个手机号码做Hash运算后得到的key值可能相同,比如,手机号A和手机号B作Hash运算后得到同一个key值,该key值对
应同一个网络连接,因此,在不同时间,手机号A对应的手机和手机号B对应的手机均可以通过同一个网络连接与服务器端建立网络通信连接,实现网络连接资源池中的网络连接的复用,避免出现网络连接资源耗尽的问题。另外,服务器端很多时候会包含多个主机,比如,一个服务器端包括主机M、主机L和主机W,网络连接a和网络连接b均可连接至主机A,客户端G可通过网络连接a与主机A建立网络连接,客户端H可通过网络连接b与主机A建立网络连接,也就是说,在同一时间,客户端G和客户端H均能与主机A建立网络连接,实现并行数据传输的功能,相比现有技术的串行数据传输,提高了数据传输的速度。实施例二、一种基于网络连接池化的网络通信系统。下面结合图3对本实施例提供的系统进行描述。参见图3,本实施例提供的系统包括Hash表创建单元31、初始化单元32、存储单元33、key值获取单元34、连接状态检测单元35、激活单元36、网络连接获取单元37和网络连接单元38。其中,Hash表创建单元31,用于创建一Hash表。初始化单元32,用于根据预定需求初始化N个网络连接,其中,根据客户端的数量确定N的取值。存储单元33,用于采用Hash运算为每一个网络连接创建对应的key值,并根据创建的key值将每一个网络连接对应存储于Hash表中,形成网络连接资源池。key获取单元34,用于当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值本文档来自技高网
...

【技术保护点】
一种基于网络连接池化的网络通信方法,其特征在于,包括:S1、创建一Hash表,并根据预定需求初始化N个网络连接,其中,N为正整数;S2、采用Hash运算为每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;S4、根据对应的key值从Hash表中获取与客户端对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。

【技术特征摘要】
1.一种基于网络连接池化的网络通信方法,其特征在于,包括:S1、创建一Hash表,并根据预定需求初始化N个网络连接,其中,N为正整数;S2、采用Hash运算为每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;S4、根据对应的key值从Hash表中获取与客户端对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。2.如权利要求1所述的基于网络连接池化的网络通信方法,其特征在于,根据客户端的数量确定N的取值。3.如权利要求1所述的基于网络连接池化的网络通信方法,其特征在于,还包括:按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测,当检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。4.如权利要求3所述的基于网络连接池化的网络通信方法,其特征在于,所述步骤S4还包括:对从Hash表中获取的与客户端对应的网络连接的连接状态进行检测,当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。5.如权利要求4所述的基于网络连接池化的网络通信方法,其特征在于,当客户端通过对应的网络连接与服务器端建立连接失败时,客户端继续
\t通过该网络连接与服务器端重新建立网络连接预定次数。6.一种基于网络连接池化的网络通信系统,其特征在于,包括:Hash表创建单元,用于创...

【专利技术属性】
技术研发人员:梁蕤
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1