一种传输控制协议网络实现方法以及一种服务器的制造方法

文档序号:7778275阅读:237来源:国知局
一种传输控制协议网络实现方法以及一种服务器的制造方法
【专利摘要】本发明公开了一种TCP网络实现方法:为每个需要监听的IP地址和端口分别对应建立一个TCP?Socket;针对每个Socket,分别进行以下处理:启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动M个数据收发线程,用于处理各Socket连接上的数据接收和发送;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。本发明同时公开了一种服务器。应用本发明所述方案,能够提高数据吞吐量等。
【专利说明】一种传输控制协议网络实现方法以及一种服务器
【技术领域】
[0001]本发明涉及网络技术,特别涉及一种传输控制协议网络实现方法以及一种服务器。
【背景技术】
[0002]现有大多数服务器架构体系都是基于传输控制协议(TCP,Transmission ControlProtocol)网络的,服务器的数据处理能力的瓶颈往往集中在TCP网络上。
[0003]因此,如何设计一种高数据吞吐量的TCP网络,是一个亟待解决的问题,但现有技术中还没有一种有效的解决方式。

【发明内容】

[0004]有鉴于此,本发明提供了一种TCP网络实现方法以及一种服务器,能够提高数据
吞吐量。
[0005]为了达到上述目的,本发明的技术方案是这样实现的:
[0006]一种TCP网络实现方法,包括:
[0007]为每个需要监听的IP地址和端口分别对应建立一个TCP套接字Socket ;
[0008]针对每个Socket,分别进行以下处理:
[0009]启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,所述Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
[0010]一种服务器,包括:
[0011 ] 第一处理模块,用于为每个需要监听的IP地址和端口分别对应建立一个TCP套接字 Socket ;
[0012]第二处理模块,用于针对每个Socket,分别进行以下处理:
[0013]启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,所述Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
[0014]可见,采用本发明所述方案,为每个需要监听的IP地址和端口分别对应建立一个TCP Socket,并启动一个监听线程来监听通过TCP连接到该Socket上的Socket连接,另外,启动Μ个数据收发线程来处理各Socket连接上的数据接收和发送,而且,各数据收发线程可仅在需要处理数据时才处于运行状态,否则可处于休眠状态;通过上述方式,可显著提高数据的吞吐量,并能够节省系统资源消耗等。
【专利附图】

【附图说明】
[0015]图1为本发明TCP网络实现方法实施例的流程图。
[0016]图2为本发明服务器实施例的组成结构示意图。【具体实施方式】
[0017]为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步的详细说明。
[0018]图1为本发明TCP网络实现方法实施例的流程图。如图1所示,包括以下步骤11?12。
[0019]步骤11:为每个需要监听的IP地址和端口分别对应建立一个TCP套接字(Socket)。
[0020]本步骤中,可针对每个需要监听的IP地址和端口,分别对应建立一个TCPSocket,即将所建立的Socket与对应的IP地址和端口进行捆绑,如何建立Socket为现有技术。
[0021]如何确定哪些IP地核和端口需要监听同样为现有技术。
[0022]步骤12:针对每个Socket,分别启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
[0023]所述Socket连接,即指客户端所建立的通过TCP连接到该Socket上的连接(connect)ο
[0024]本步骤中,可针对步骤11中所建立的每个Socket,分别利用一个监听线程来监听该Socket上的Socket连接,并可针对监听到各Socket连接,按照以下方式一或方式二进行处理。
[0025]方式一
[0026]针对每个Socket连接,分别对应启动一个数据收发线程,每个数据收发线程分别用于处理对应的Socket连接上的数据接收和发送。
[0027]方式二
[0028]为所有Socket连接共同启动一个数据收发线程,该数据收发线程用于处理所有Socket连接上的数据接收和发送。
[0029]可以看出,方式一中,数据收发线程和Socket连接之间是一对一的关系,而方式二中,数据收发线程和Socket连接之间是一对多的关系。
[0030]另外,相比于方式二,方式一可使得数据能够得到更为及时的处理,但相比于方式一,方式二中由于线程数减少,因此能够减少对系统资源的占用等。具体采用方式一还是方式二可根据实际需要而定,
[0031]在实际应用中,为了防止出现线程占用系统资源过多,从而导致系统出现异常错误等问题,数据收发线程可在对应的Socket连接上没有数据接收和发送时,处于休眠状态,即处于非运行状态,处于休眠状态的具体时长可根据实际情况而定,比如,可根据具体的操作系统以及系统当前的负荷等来确定。
[0032]具体来说,每个数据收发线程在启动后,将处于运行状态,并可分别执行以下处理:
[0033]A、确定自身对应的Socket连接上是否存在数据接收和/或发送,如果是,则执行步骤B,否则,执行步骤C;
[0034]B、处理自身对应的Socket连接上的数据接收和/或发送,当处理完毕后(即没有新的接收和/或发送数据需要处理),执行步骤C,如何处理为现有技术;
[0035]C、进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行步骤A。
[0036]上述数据接收和/或发送包括以下三种情况:数据接收、数据发送、数据接收和数据发送。
[0037]另外,对于每个数据收发线程,当满足退出条件时,可退出到停止状态。
[0038]具体来说,每个数据收发线程在启动后,其内部会启动一个循环,循环的依据是判断所在线程是否处于应该停止状态,如果是,则循环退出,相应地,该循环所在线程也退出到停止状态,具体实现为现有技术。另外,对于按照上述方式一启动的每个数据收发线程,当监听线程监听到该数据收发线程对应的Socket连接断开时(客户端退出连接时),对应的数据收发线程也可退出到停止状态。其它可能的情况不再一一赘述。
[0039]至此,即完成了关于本发明方法实施例的介绍。
[0040]基于上述介绍,图2为本发明服务器实施例的组成结构示意图。如图2所示,包括:
[0041]第一处理模块,用于为每个需要监听的IP地址和端口分别对应建立一个TCPSocket ;
[0042]第二处理模块,用于针对每个Socket,分别进行以下处理:
[0043]启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
[0044]其中,
[0045]Μ的取值等于一,或者,等于Socket连接数;
[0046]当Μ的取值等于Socket连接数时,每个Socket连接分别对应一个数据收发线程;
[0047]当Μ的取值等于一时,所有Socket连接共同对应一个数据收发线程。
[0048]具体地,
[0049]每个数据收发线程可用于,当自身启动后,处于运行状态,并执行以下预定处理:确定自身对应的Socket连接上是否存在数据接收和/或发送,如果是,则处理自身对应的Socket连接上的数据接收和/或发送,当处理完毕后,进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行所述预定处理;如果否,则进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行所述预定处理。
[0050]另外,
[0051]数据收发线程还可进一步用于,当满足退出条件时,退出到停止状态。
[0052]图2所示服务器实施例的具体工作流程请参照前述方法实施例中的相应说明,此处不再赘述。
[0053]需要说明的是,在实际应用中,图2所示服务器中通常还会进一步包括一些其它组成部分,由于与本发明所述方案无直接关系,故不作介绍。
[0054]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种传输控制协议TCP网络实现方法,其特征在于,包括:为每个需要监听的IP地址和端口分别对应建立一个TCP套接字Socket ;针对每个Socket,分别进行以下处理:启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,所述Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
2.根据权利要求1所述的方法,其特征在于,所述启动Μ个数据收发线程包括:为每个Socket连接分别对应启动一个数据收发线程;或者,为所有Socket连接共同启动一个数据收发线程。
3.根据权利要求2所述的方法,其特征在于,所述每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态包括:每个数据收发线程在启动后,处于运行状态,并执行以下处理:A、确定自身对应的Socket连接上是否存在数据接收和/或发送,如果是,则执行步骤B,否则,执行步骤C;B、处理自身对应的Socket连接上的数据接收和/或发送,当处理完毕后,执行步骤C;C、进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行步骤A。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括:对于每个数据收发线程,当满足退出条件时,退出到停止状态。
5.一种服务器,其特征在于,包括:第一处理模块,用于为每个需要监听的IP地址和端口分别对应建立一个TCP套接字Socket ;第二处理模块,用于针对每个Socket,分别进行以下处理:启动一个监听线程,用于监听通过TCP连接到该Socket上的Socket连接,并启动Μ个数据收发线程,用于处理各Socket连接上的数据接收和发送,所述Μ为正整数;其中,每个数据收发线程仅在需要处理数据时处于运行状态,否则处于休眠状态。
6.根据权利要求5所述的服务器,其特征在于,所述Μ的取值等于一,或者,等于Socket连接数;当所述Μ的取值等于Socket连接数时,每个Socket连接分别对应一个数据收发线程;当所述Μ的取值等于一时,所有Socket连接共同对应一个数据收发线程。
7.根据权利要求6所述的服务器,其特征在于,每个数据收发线程用于,当自身启动后,处于运行状态,并执行以下预定处理:确定自身对应的Socket连接上是否存在数据接收和/或发送,如果是,则处理自身对应的Socket连接上的数据接收和/或发送,当处理完毕后,进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行所述预定处理;如果否,则进入休眠状态,当经过预定时长后,恢复为运行状态,并重复执行所述预定处理。
8.根据权利要求5所述的服务器,其特征在于,所述数据收发线程进一步用于,当满足退出条件时,退出到停止状态。
【文档编号】H04L29/08GK103685480SQ201310626098
【公开日】2014年3月26日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】胡恒亮 申请人:云海创想信息技术(无锡)有限公司, 深圳市安云信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1