一种网络事件处理方法及装置制造方法
【专利摘要】本发明提供了一种网络事件处理方法及装置,当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,给请求链接的状态的监听套接字分配预设的调度配额,在一个监听套接字预设的调度配额内,每接收到一个客户端的数据传输请求时,创建与所述客户端通信的连接套接字;创建与客户端通过所述连接套接字通信的连接对象,将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端,在同一个装置上实现网络事件的触发与处理,并且触发过程结束时激活处理过程为一个连续的过程,加快网络事件的处理速度,提高多核处理服务器的事件处理速度。
【专利说明】一种网络事件处理方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,特别是涉及一种网络事件处理方法及装置。
【背景技术】
[0002]随着互联网信息传输技术的发展,越来越多的服务器采用多核处理器来解决网络事件高并发的问题。服务器对网络事件的处理,目前常用的方法为用户态轮询处理方式,采用操作系统内核的事件处理层实现同步非阻塞输入/输出(non-blocking I/O)以及多路复用(multiplexing)。
[0003]用户轮询方式处理网络事件主要分为两个步骤:事件触发步骤:服务器中的网卡接收到客户端发送的网络服务请求数据,网卡将网络服务请求数据通过与其连接的一个处理器发送到网络协议栈的数据缓存区域进行缓存,网络协议栈调用事件处理层标记所述数据缓存区域为存储数据的状态;事件处理步骤:用户层通过一个处理器向网络协议栈的缓存区域主动轮询,当轮询到缓存区域为存储数据的状态时,用户层读取数据缓存区域的数据。
[0004]以读取数据为例,数据从客户端发送到服务器的网卡,网卡将接收到的数据通过一个处理器发送到网络协议栈的数据缓存区域进行缓存,网络协议栈调用事件处理层标记所述数据缓存区域为存储数据的状态;用户层通过一个处理器向网络协议栈的缓存区域主动轮询,当轮询到缓存区域为存储数据的状态时,用户层读取数据缓存区域的数据。若用户层轮询的结果是数据缓存区域没有数据进行缓存,则继续轮询。
[0005]本领域技术人员采用上述方法处理网络事件时,发现有如下缺点:
[0006]上述处理网络事件的过程中,事件的触发和事件的处理是两个分离的过程,网卡将数据通过一个处理器将数据发送到缓存区域存储;用户层通过一个处理器轮询缓存区域的存储状态,事件的触发和事件的处理可能出于不同的处理器队列,导致事件的触发和事件的处理之间产生一定的时间间隔,导致事件处理进行延迟,降低多核处理服务器的事件处理速度。
【发明内容】
[0007]有鉴于此,本发明提供了一种网络事件处理方法及装置,当接收到客户端数据传输请求时,创建与客户端通信的连接套接字,创建与客户端通过所述连接套接字通信的连接对象,将客户端发送的数据通过所述连接套接字传递到与所述连接对象进行处理,事件的触发与处理过程在同一个装置上处理,且触发过程结束时激活处理过程,加快了网络事件处理速度。
[0008]一种网络事件处理方法,所述方法包括:
[0009]当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求;
[0010]给请求链接的状态的监听套接字分配预设的调度配额,所述预设的调度配额为对其所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间;
[0011]在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字;
[0012]创建与客户端通过所述连接套接字通信的连接对象;
[0013]将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0014]可选的,所述方法还包括:
[0015]在一个监听套接字预设的调度配额内,当创建连接套接字失败时,丢弃所述监听
套接字。
[0016]可选的,所述方法还包括:
[0017]当超出一个监听套接字预设的调度配额时,若仍能成功创建连接套接字,则重新为所述监听套接字分配调度配额。
[0018]可选的,所述将所述客户端发送的数据通过所述连接套接字传递到所述连接对象包括:
[0019]识别所述连接套接字对应的连接对象;
[0020]调用所述连接套接字的回调函数;
[0021]利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到所述连接对象。
[0022]可选的,所述方法还包括:
[0023]当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
[0024]可选的,所述删除所述连接套接字包括:
[0025]给所述连接套接字设置删除预设时间;
[0026]当到达删除预设时间时,删除所述连接套接字。
[0027]一种网络事件处理装置,所述装置包括:
[0028]判断单元,用于当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求;
[0029]分配单元,用于给请求链接的状态的监听套接字分配预设的调度配额,所述预设的调度配额为对其所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间;
[0030]第一创建单元,用于在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字;
[0031]第二创建单元,用于创建与客户端通过所述连接套接字通信的连接对象;
[0032]处理单元,用于将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述连接套接字返回到所述客户端。
[0033]可选的,所述装置还包括:
[0034]丢弃单元,用于在一个监听套接字预设的调度配额内,当创建连接套接字失败时,丢弃所述监听套接字。[0035]可选的,所述装置还包括:
[0036]重新分配单元,用于当超出一个监听套接字预设的调度配额时,若仍能成功创建连接套接字,则重新为所述监听套接字分配调度配额。
[0037]可选的,所述处理单元包括:
[0038]识别子单元,用于识别所述连接套接字对应的连接对象;
[0039]调用子单元,用于调用所述连接套接字的回调函数;
[0040]发送子单元,用于利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0041]可选的,所述装置还包括:
[0042]删除单元,用于当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
[0043]可选的,所述删除单元包括:
[0044]设置子单元,用于给所述连接套接字设置删除预设时间;
[0045]删除子单元,用于当到达删除预设时间时,删除所述连接套接字。
[0046]有上述内容可知,本发明有如下有益效果:
[0047]本发明提供了一种网络事件处理方法及装置,当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,给请求链接的状态的监听套接字分配预设的调度配额,在一个监听套接字预设的调度配额内,每接收到一个客户端的数据传输请求时,创建与所述客户端通信的连接套接字;创建与所述客户端通过所述连接套接字通信的连接对象,将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。网络事件的触发过程为接收到客户端的数据传输请求,事件的处理过程为创建与客户端通信的连接套接字,创建与客户端通过所述连接套接字通信的连接对象,将客户端的数据通过所述连接套接字传递到所述连接对象进行处理,将处理结果数据通过所述的连接套接字返回到所述客户端,事件的触发过程与处理过程为一个连续的过程,并在同一个装置上处理,提高了装置的缓存命中率,加快网络事件的处理速度,提高了多核处理服务器的事件处理速度。
【专利附图】
【附图说明】
[0048]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049]图1为本发明一种网络事件处理方法实施例一流程图;
[0050]图2为本发明一种网络事件处理方法实施例二流程图;
[0051]图3为本发明一种网络事件处理装置实施例三结构示意图;
[0052]图4为本发明一种网络事件处理装置实施例四结构示意图。
【具体实施方式】[0053]本发明提供了一种网络事件处理方法及装置,本发明提供了 一种网络事件处理方法及装置,当接收到客户端数据传输请求时,创建与客户端通信的连接套接字,创建与客户端通过所述连接套接字通信的连接对象,将客户端发送的数据通过所述连接套接字传递到与所述连接对象进行处,事件的触发处理过程为一个连续的过程,提高了多核处理服务器的事件处理速度。
[0054]下面结合附图对本发明具体实施例进行详细说明。
[0055]实施例一
[0056]图1为本发明一种网络事件处理方法实施例一流程图,所述方法包括:
[0057]步骤101:当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,如果是,执行步骤102,如果否,执行步骤106。
[0058]服务器的每个端口对应一个监听套接字,所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求。服务器监听套接字初始化时,设置服务器内核系统监听套接字的sk_data_ready回调函数。
[0059]至少一个客户端通过一个端口将链接请求数据发送到服务器的网卡,网卡将链接请求数据发送到内核系统的协议栈,协议栈将链接请求数据进行缓存,获取与所述端口关联的监听套接字,并调用内核系统监听套接字的sk_data_ready回调函数。
[0060]回调函数判断接监听套接字的状态,当监听套接字的状态为请求链接的状态,则将所述监听套接字放入一个监听队列。监听队列是一个放置符合请求链接状态的监听套接字的队列,采用先进先出的原则,先进入监听队列的监听套接字先弹出;后进入监听队列的监听套接字后弹出,也就是说,先处理先进入的监听套接字,再处理后进入的监听套接字。监听队列理论上可以排列的监听套接字的个数不限制,在服务器的存储范围内即可。
[0061]步骤102:给请求链接的状态的监听套接字分配预设的调度配额。
[0062]回调函数激活监听队列的监听处理线程,排列在监听队列中的监听套接字按照顺序逐一弹出,监听处理线程给弹出的监听套接字设置预设的调度配额。所述预设的调度配额为对其所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间,也就是说,预设的调度配额为所述监听套接字的操作时间。举例说明,若预设的调度配额为10s,处理在IOs内监听套接字所监听到的所有客户端的数据处理请求。
[0063]在预设的调度配额内,尽可能的处理所有当前处理的监听套接字所监听到的至少一个客户端的数据处理请求。超出预设的调度配额或处理完当前处理的监听套接字所监听到的所有客户端的数据处理请求后,弹出下一个监听套接字,为下一个监听套接字分配预设的调度配额。
[0064]步骤103:在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字。
[0065]监听处理线程给一个监听套接字分配预设的调度配额后,监听套接字每监听到一个客户端的数据处理请求时,创建一个与所述客户端通信的连接套接字。监听套接字监听与其关联的端口所接收的至少一个客户端发送的数据处理求。监听套接字可以接收不同的客户端发送的数据处理请求,监听处理线程为每一个客户端单独创建一个与客户端通信的连接套接字,一个连接套接字与一个客户端进行通信。
[0066]将生成的连接套接字发送到工厂队列,工厂队列是放置与客户端通信的连接套接字的队列。
[0067]监听处理线程主要给请求链接状态的监听套接字分配预设的调度配额,给当前处理的监听套接字所监听到的客户端创建一个连接套接字,将连接套接字发送到工厂队列进行后续处理,这样可以保证监听处理线程不被阻塞,有效的提高了并发连接请求的处理能力。
[0068]步骤104:创建与客户端通过所述连接套接字通信的连接对象。
[0069]工厂处理线程根据工厂队列中弹出的连接套接字在内核系统中创建一个连接对象,所述连接对象通过所述连接套接字与客户端进行通信。连接套接字与连接对象一一对应,建立了客户端和与连接对象之间数据传输通道。
[0070]步骤105:将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0071]事件处理线程识别工厂队列弹出的连接套接字接收的客户端数据的类型,根据所述数据的类型调用与所述数据类型相匹配的回调函数。
[0072]当接收到来自客户端的数据时,调用sk_data_ready回调函数;
[0073]当网络协议栈的缓冲区可写时,调用sk_write_space回调函数;
[0074]当连接套接字的状态改变时,调用sk_state_chuange回调函数。
[0075]调用了回调函数的连接套接字作为一个数据处理事件发送到事务队列,事务队列中放置的是待处理的具体数据处理事件,采用先进先出的原则,依次对客户端发送的数据进行处理。
[0076]事件处理线程对事务队列弹出的处理事件进行处理,即利用所述回调函数将所述客户端发送的数据通过所述连接套接字与传递到所述连接对象。由于所述连接对象与客户端通信,连接对象将对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0077]步骤106:丢弃所述监听套接字。
[0078]当监听套接字不是请求链接的状态时,丢弃所述监听套接字。
[0079]由上述内容可知,本发明有如下有益效果:
[0080]当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,给请求链接的状态的监听套接字分配预设的调度配额,在一个监听套接字预设的调度配额内,每接收到一个客户端的数据传输请求时,创建与所述客户端通信的连接套接字;创建与所述客户端通过所述连接套接字通信的连接对象,将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。网络事件的触发过程为接收到客户端的数据传输请求,事件的处理过程为创建与客户端通信的连接套接字,创建与客户端通过所述连接套接字通信的连接对象,将客户端的数据通过所述连接套接字传递到所述连接对象进行处理,将处理结果数据通过所述的连接套接字返回到所述客户端,事件的触发过程与处理过程为一个连续的过程,并在同一个装置上处理,提高了装置的缓存命中率,加快网络事件的处理速度,提高了多核处理服务器的事件处理速度。
[0081]实施例二[0082]图2为本发明一种网络事件处理方法实施例二流程图,与实施例一相比,实施例二中还包括对连接套接字的删除处理,所述方法包括:
[0083]步骤201:当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,如果是,执行步骤202 ;如果否,执行步骤210。
[0084]步骤202:给请求链接的状态的监听套接字分配预设的调度配额。
[0085]所述预设的调度配额为对所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间。
[0086]步骤201与步骤202与实施例一类似,参考实施例一的描述,这里不再赘述。
[0087]步骤203:判断是否在一个监听套接字预设的调度配额内,如果是,执行步骤204,如果否,执行步骤208。
[0088]在监听套接字预设的调度配额内时,尽可能的处理监听套接字所监听到的所有客户端发送的数据处理请求。
[0089]步骤204:每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字,连接套接字是否创建成功,如果是,执行步骤205;如果否,执行步骤210。
[0090]在监听套接字的预设的调度配额内,每接收到一个客户端的数据处理请求,即创建一个与所述客户端通信的连接套接字。此处与实施例一类似,参考实施例一的描述,这里不再赘述。
[0091]连接套接字创建成功,则创建与客户端通过所述连接套接字通信的连接对象;连接套接字创建不成功,表示监听套接字所监听到的所有客户端的数据处理请求处理完毕,丢弃所述连接套接字。
[0092]步骤205:若连接套接字创建成功,创建与客户端通过所述连接套接字通信的连接对象。
[0093]步骤206:将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0094]步骤205和步骤206与实施例一类似,参考实施例一的描述,这里不再赘述。
[0095]步骤207:当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
[0096]当数据传输完毕或者传输异常时,事件处理线程给所述连接套接字添加删除标识,并将添加了删除标识的连接套接字发送到工厂队列,工厂队列删除添加了删除标识的连接套接字。
[0097]可选的,事件处理线程给添加了删除标识的连接套接字设置删除预设时间,当到达删除预设时间时,删除所述连接套接字。
[0098]工厂处理线程执行创建与客户端通过所述连接套接字通信的连接对象以及删除添加了删除标识的连接套接字两个处理任务,其中,创建连接对象采用尽可能的调度策略,只要工厂队列中还有连接套接字,就与客户端通过所述连接套接字通信的连接对象;删除添加了删除标识的连接套接字采用延迟处理策略,给每个添加了删除标识的连接套接字设置一个删除预设时间,当到达删除预设时间时,再对添加了删除标识的连接套接字进行删除。这样,工厂处理线程可以先尽快的处理待处理的连接套接字,再延迟处理删除空闲的连接套接字,释放事件处理空间,最大限度了提高了并发事件的处理能力。[0099]步骤208:连接套接字是否创建成功,如果是,执行步骤209 ;如果否,执行步骤210。
[0100]步骤209:若连接套接字创建成功,重新为所述监听套接字分配调度配额。
[0101]当超过预设的调度配额时,监听套接字所监听的所有客户端的数据处理请求还没有操作完毕,也就是说,当超过预设的调度配额时,此监听套接字还监听到客户端的数据处理请求,则将此监听套接字重新放入监听队列,重新为此监听套接字分配预设的调度配额。
[0102]举例说明:若监听队列中依次有tcp监听套接字、unix监听套接字以及Iinux监听套接字,处理tcp监听套接字监听到的客户端的数据处理请求,当超过tcp监听套接字的预设的调度配额时,tcp监听套接字还监听到客户端的数据处理请求,则将tcp监听套接字重新放入监听队列,排列在Iinux监听套接字之后,当处理完unix监听套接字和Iinux监听套接字后,再给tcp监听套接字分配预设的调度配额,继续处理tcp监听套接字监听到的客户端的数据处理请求。
[0103]步骤210:若连接套接字创建失败,丢弃所述连接套接字。
[0104]由上述内容可知,本发明还有如下有益效果:
[0105]监听处理线程将连接套接字发送到工厂队列,工厂处理线程创建与客户端通过所弹出的连接套接字通信的连接对象,监听处理线程只负责处理监听客户端的数据处理请求事件;事件处理线程调用回调函数将客户端发送的数据通过所述连接套接字传递到所述连接对象,给数据处理完毕或数据处理异常的连接套接字添加删除标识发送到工厂队列,事件处理线程只负责客户端的数据的处理;工厂队列负责生成连接对象,并删除添加了删除标识的连接套接字,释放事件处理空间,辅助监听处理线程和事件处理线程,保证监听处理线程不阻塞,最大限度提高了并发链接请求的处理能力;删除空闲的连接套接字,释放数据处理空间,最大限度提高了并发事务的处理能力。
[0106]实施例三
[0107]图3为本发明一种网络事件处理装置实施例三结构示意图,实施例三是与实施例一所述的方法所对应的装置,所述装置包括:
[0108]判断单元301,用于当受到协议栈的调用时,判断监听套接字是否为请求链接的状态。
[0109]所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的请求。
[0110]分配单元302,用于给请求链接的状态的监听套接字分配预设的调度配额。
[0111]所述预设的调度配额为对所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间。
[0112]第一创建单元303,用于在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字。
[0113]第二创建单元304,用于创建与客户端通过所述连接套接字通信的连接对象。
[0114]处理单元305,用于将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述连接套接字返回到所述客户端。
[0115]可选的,所述处理单元305包括:
[0116]识别子单元306,用于识别所述连接套接字对应的连接对象;[0117]调用子单元307,用于调用所述连接套接字的回调函数;
[0118]发送子单元308,用于利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0119]实施例四
[0120]图4为本发明一种网络事件处理装置实施例四结构示意图,实施例四是与实施例二所述的方法所对应的装置,所述装置包括:
[0121]判断单元301,用于当受到协议栈的调用时,判断监听套接字是否为请求链接的状态。
[0122]所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求。
[0123]分配单元302,用于给请求链接的状态的监听套接字分配预设的调度配额。
[0124]所述预设的调度配额为对所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间。
[0125]第一创建单元303,用于在一个监听套接字预设的调度配额内,每接收到一个客户端的数据传输请求时,创建与所述客户端通信的连接套接字。
[0126]第二创建单元304,用于创建与客户端通过所述连接套接字通信的连接对象。
[0127]处理单元305,用于将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述连接套接字返回到所述客户端。
[0128]可选的,所述处理单元305包括:
[0129]识别子单元306,用于识别所述连接套接字对应的连接对象;
[0130]调用子单元307,用于调用所述连接套接字的回调函数;
[0131]发送子单元308,用于利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
[0132]丢弃单元401,用于在一个监听套接字预设的调度配额内,当创建连接套接字失败时,丢弃所述监听套接字。
[0133]重新分配单元402,用于当超出一个监听套接字预设的调度配额时,若仍能成功创建连接套接字,重新为所述监听套接字分配调度配额。
[0134]删除单元403,用于当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
[0135]可选的,所述删除单元403包括:
[0136]设置子单元404,用于给所述连接套接字设置删除预设时间;
[0137]删除子单元405,用于当到达删除预设时间时,删除所述连接套接字。
[0138]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种网络事件处理方法,其特征在于,所述方法包括: 当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求; 给请求链接的状态的监听套接字分配预设的调度配额,所述预设的调度配额为对其所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间; 在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字; 创建与客户端通过所述连接套接字通信的连接对象; 将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在一个监听套接字预设的调度配额内,当创建连接套接字失败时,丢弃所述监听套接字。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当超出一个监听套接字预设的调度配额时,若仍能成功创建连接套接字,则重新为所述监听套接字分配调度配额。`
4.根据权利要求1所述的方法,其特征在于,所述将所述客户端发送的数据通过所述连接套接字传递到所述连接对象包括: 识别所述连接套接字对应的连接对象; 调用所述连接套接字的回调函数; 利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到所述连接对象。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括: 当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
6.根据权利要求5所述的方法,其特征在于,所述删除所述连接套接字包括: 给所述连接套接字设置删除预设时间; 当到达删除预设时间时,删除所述连接套接字。
7.—种网络事件处理装置,其特征在于,所述装置包括: 判断单元,用于当受到协议栈的调用时,判断监听套接字是否为请求链接的状态,所述监听套接字用于监听与其关联的端口所接收的至少一个客户端的链接请求; 分配单元,用于给请求链接的状态的监听套接字分配预设的调度配额,所述预设的调度配额为对其所属的监听套接字所监听的至少一个客户端的数据处理请求的操作时间;第一创建单元,用于在一个监听套接字预设的调度配额内,每接收到一个客户端的数据处理请求时,创建与所述客户端通信的连接套接字; 第二创建单元,用于创建与客户端通过所述连接套接字通信的连接对象; 处理单元,用于将所述客户端发送的数据通过所述连接套接字传递到所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述连接套接字返回到所述客户端。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 丢弃单元,用于在一个监听套接字预设的调度配额内,当创建连接套接字失败时,丢弃所述监听套接字。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 重新分配单元,用于当超出一个监听套接字预设的调度配额时,若仍能成功创建连接套接字,则重新为所述监听套接字分配调度配额。
10.根据权利要求7所述的装置,其特征在于,所述处理单元包括: 识别子单元,用于识别所述连接套接字对应的连接对象; 调用子单元,用于调用所述连接套接字的回调函数; 发送子单元,用于利用所述回调函数将所述客户端发送的数据通过所述连接套接字传递到与所述连接对象,以便所述连接对象对所述数据进行处理后,将得到的处理结果数据通过所述的连接套接字返回到所述客户端。
11.根据权利要求7-10所述的装置,其特征在于,所述装置还包括: 删除单元,用于当所述数据处理完毕或数据处理异常时,删除所述连接套接字。
12.根据权利要求11所述的装置,其特征在于,所述删除单元包括: 设置子单元,用于给所述连接套接字设置删除预设时间; 删除子单元,用于当到达删除预设时间时,删除所述连接套接字。
【文档编号】H04L12/24GK103501245SQ201310446725
【公开日】2014年1月8日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】李建国 申请人:北京搜狐互联网信息服务有限公司