一种异步IOCP实现的SOKCET通信设计方法与流程

文档序号:13192781阅读:266来源:国知局
技术领域本申请涉及一种基于互联网的网络通信技术,特别涉及一种异步IOCP实现的SOKCET通信设计方法。

背景技术:
TCP/IP协议保障了数据传输的到达和准确率,但未对应用层数据提交的完整性进行保障。在进行TCP数据流式传输的过程中,数据通常具备应用层协议,同步Socket中,在应用层发送数据时,会阻塞调用,直到所有的数据都提交到TCP层,但在异步Socket中,TCP层只接收能接收的数据容量,对于超出其接收范围的,TCP层将不再接收,调用会立即返回。在TCP层进行数据远程发送后,会空闲出空间,此时能够再次接收外来数据,但需要应用方再次调用进行数据提交,方能提交数据到TCP层。可见TCP/IP协议在应用层发送数据时,无法保障在异步Socket传输中,完整的提交应用层协议数据到TCP层。

技术实现要素:
本申请要解决的技术问题是,保障TCP/IP协议在应用层发送数据时,在异步Socket传输中,完整的提交应用层协议数据到TCP层。为解决上述技术问题,本申请提供了一种异步IOCP实现的SOKCET通信设计方法,包括以下步骤:一、设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;二、接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;三、判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四;四、判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;五、从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;六、判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;七、判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;八、保存待发送数据到所述缓存器,然后进行步骤二;九、推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。具体实施方式下面将对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。实施例如下:一种异步IOCP实现的SOKCET通信设计方法,包括以下步骤:一、设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;二、接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;三、判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间(如100KB),如果超过则进行步骤二,否则进行步骤四;四、判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;五、从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;六、判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;七、判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;八、保存待发送数据到所述缓存器,然后进行步骤二;九、推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1