本发明专利技术公开了一种客户端数据处理方法,所述客户端数据处理方法包括以下步骤:所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;所述处理层对各个管道中的数据进行相应的处理。本发明专利技术还公开了一种客户端数据处理装置。本发明专利技术解决了服务器在处理客户端的请求时,由于读取请求及处理请求在同一个线程中进行,可能会导致代码逻辑上的混乱及数据处理效率降低的问题。
【技术实现步骤摘要】
本专利技术涉及数据处理
,尤其涉及一种客户端数据处理方法及装置。
技术介绍
大部分服务器是基于顺序迭代处理客户端请求,也就是等待客户端请求,再读取请求,处理请求,回复响应。但是在处理请求时,需要大量的cpu时间,会造成对其它客户端响应的不及时,这就需要一种解决方式,常见的解决方式就是并发。具体来说,就是为每个客户端分配一个线程来处理,当有新的客户端请求进来时,为它创建一个线程,并需要为这个线程分配一个socket(通常也称作\套接字\)及port(端口)来进行IO操作。然而,采用这种方式来进行IO操作时,由于读取请求及处理请求在同一个线程中进行,当多个客户端同时进行请求时,可能会引起代码逻辑上的混乱,进而导致数据处理效率降低。上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
本专利技术的主要目的在于提供一种客户端数据处理方法及装置,旨在解决服务器在处理客户端的请求时,由于读取请求及处理请求在同一个线程中进行,可能会导致代码逻辑上的混乱及数据处理效率降低的问题。为实现上述目的,本专利技术提供的一种客户端数据处理方法,应用于服务器中,所述服务器包括IO层、分发层及处理层,所述客户端数据处理方法包括以下步骤:所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;所述处理层对各个管道中的数据进行相应的处理。可选地,所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中的步骤包括:所述IO层在接收到各个客户端发送的数据时,获取发送所述数据的客户端的地址信息;所述IO层将所述地址信息添加至接收到的所述数据的头部;所述IO层将包含有头部信息的所述数据存储于预设的缓冲区。可选地,所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中的步骤包括:所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的头部信息对提取到的所述数据进行分类;所述分发层根据提取到的所述数据的类别建立对应的管道;所述分发层将提取到的所述数据压入对应的管道中。可选地,所述分发层将提取到的所述数据压入对应的管道中的步骤之前,还包括:所述分发层将提取到的所述数据的头部信息移除。可选地,所述处理层对各个管道中的数据进行相应的处理的步骤包括:所述处理层为各个管道分配一个工作线程,以通过所述工作线程对管道中的数据进行相应的处理。此外,为实现上述目的,本专利技术还提供一种客户端数据处理装置,所述客户端数据处理装置包括;存储模块,用于在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;压入模块,用于从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;处理模块,用于对各个管道中的数据进行相应的处理。可选地,所述存储模块包括:获取单元,用于在接收到各个客户端发送的数据时,获取发送所述数据的客户端的地址信息;添加单元,用于将所述地址信息添加至接收到的所述数据的头部;存储单元,用于将包含有头部信息的所述数据存储于预设的缓冲区。可选地,所述压入模块包括:分类单元,用于从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的头部信息对提取到的所述数据进行分类;建立单元,用于根据提取到的所述数据的类别建立对应的管道;压入单元,用于将提取到的所述数据压入对应的管道中。可选地,所述压入模块还包括:移除单元,用于将提取到的所述数据的头部信息移除。可选地,所述处理模块,还用于为各个管道分配一个工作线程,以通过所述工作线程对管道中的数据进行相应的处理。本专利技术提出的客户端数据处理方法及装置,通过所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;所述处理层对各个管道中的数据进行相应的处理。采用多层处理的方式对客户端的请求进行处理,使得对客户端请求中的读取请求及处理请求不再同一层进行处理,避免了当接收到多个客户端的读取请求的代码与处理请求的代码由于在同一层中可能引起的代码逻辑上的混乱,同时通过多个层对客户端的数据进行处理,提高了对客户端数据处理的效率。附图说明图1为本专利技术客户端数据处理方法的第一实施例的流程示意图;图2为本专利技术图1中的IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中的步骤细化流程示意图;图3为图1中的分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中的步骤细化流程示意图;图4为本专利技术图1中的分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中的另一步骤细化流程示意图;图5为本专利技术客户端数据处理装置的第一实施例的功能模块示意图;图6为本专利技术图5中的存储模块的细化功能模块示意图;图7为本专利技术图5中的压入模块的细化功能模块示意图;图8为本专利技术图5中的压入模块的另一细化功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。基于上述问题,本专利技术提供一种客户端数据处理方法,应用于服务器中,所述服务器包括IO层、分发层及处理层。参照图1,图1为本专利技术客户端数据处理方法的第一实施例的流程示意图。在本实施例中,所述客户端数据处理方法包括:步骤S10,所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;本专利技术提供的客户端数据处理方法,与现有的技术方案的区别在于采用分层处理的方式对客户端的数据进行处理,可以提高对客户端的数据的处理效率。具体的,本专利技术中的服务器逻辑上可以分为三层,分别为IO层、分发层及处理层。所述IO层是基于完成端口的,IO完成端口是一种机制,通过这个机制,应用程序在启动时会首先创建一个线程池,然后该应用程序使用线程池处理异步I/O请求。这些线程被创建的唯一目的就是用于处理I/O请求。对于处理大量并发异步I/O请求的应用程序来说,相比于在I/O请求发生时创建线程来说,使用完成端口就可以做的更快且更有效率。由于所述IO层是基于完成端口的,因此,所述IO层在接收到各个客户端发送的数据时,即接收到各个客户端的I/O请求时,可以立刻采用该IO层中的多个线程读取客户端发送的数据,每个线程读取一个客户端的I/O请求,在接收到客户端发送的数据后将该接收到的数据存储于预设的缓冲区。所述预设的缓冲区为所述IO层的工作线程预先建立的管道缓冲区的末尾的存储区间。即每次IO层在将接收到的数据存入管道中时,都是将数据存储于管道缓冲区中的剩余存储区间的最末尾的存储区间中。在本实施例中,所述IO层只接收各个客户端发送的数据,而不对各个客户端发送的数据进行处理,即IO层中的工作线程只对各个客户端的I/O请求进行读取,而不对各个客户端的请求进行处理。步骤S20,所述分发层从所述预设的缓冲区中提取存储的数据本文档来自技高网...
【技术保护点】
一种客户端数据处理方法,应用于服务器中,其特征在于,所述服务器包括IO层、分发层及处理层,所述客户端数据处理方法包括以下步骤:所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;所述处理层对各个管道中的数据进行相应的处理。
【技术特征摘要】
1.一种客户端数据处理方法,应用于服务器中,其特征在于,所述服务器包括IO层、分发层及处理层,所述客户端数据处理方法包括以下步骤:所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中;所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中;所述处理层对各个管道中的数据进行相应的处理。2.如权利要求1所述的客户端数据处理方法,其特征在于,所述IO层在接收到各个客户端发送的数据时,将接收到的数据存储于预设的缓冲区中的步骤包括:所述IO层在接收到各个客户端发送的数据时,获取发送所述数据的客户端的地址信息;所述IO层将所述地址信息添加至接收到的所述数据的头部;所述IO层将包含有头部信息的所述数据存储于预设的缓冲区。3.如权利要求2所述的客户端数据处理方法,其特征在于,所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的类别将提取到的所述数据压入对应的管道中的步骤包括:所述分发层从所述预设的缓冲区中提取存储的数据,并根据提取到的数据的头部信息对提取到的所述数据进行分类;所述分发层根据提取到的所述数据的类别建立对应的管道;所述分发层将提取到的所述数据压入对应的管道中。4.如权利要求3所述的客户端数据处理方法,其特征在于,所述分发层将提取到的所述数据压入对应的管道中的步骤之前,还包括:所述分发层将提取到的所述数据的头部信息移除。5.如权利要求1至4任一项所述的客户端数据处理方法,其特征在于,所...
【专利技术属性】
技术研发人员:许永昌,盛阁,
申请(专利权)人:深圳市鼎盛智能科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。