[发明专利]服务端基于TCP的交互处理方法有效
申请号: | 201210013898.7 | 申请日: | 2012-01-17 |
公开(公告)号: | CN102546808A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 梁文 | 申请(专利权)人: | 深圳天源迪科信息技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F9/46 |
代理公司: | 深圳市德力知识产权代理事务所 44265 | 代理人: | 林才桂 |
地址: | 518000 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 服务端 基于 tcp 交互 处理 方法 | ||
1.一种服务端基于TCP的交互处理方法,其特征在于,包括以下步骤:
步骤1、初始化,加载配置信息,所述配置信息一并加载到HashMap中;
步骤2、创建长连接,形成连接池,所述创建长连接的方式为心跳方式,所述长连接的发送和接收采用异步方式,长连接接收或发送的数据通过四位字节长度的ID和高效的细粒度数据建立关联;
步骤3、长连接均匀处理异步请求及同步请求,并往IO写数据包,如果所述长连接处理同步请求需要等待结果,则采用异步API的方式处理,发送并等待结果,如果所述长连接处理异步请求,则发送并结束;所述往IO写数据在开始和结束写一瞬间,用锁保证数据包完整写入IO中,且在每个数据包前面插入四位字节长度的ID;
步骤4、IO把数据包交给线程池,线程池起动线程,解释数据包,所述IO接收到数据包后交给线程池,该线程池异步、并发处理每个数据包,所述线程解释数据包,返回一个数据,把ID除以10得到余数,通过余数找到所在的区,从这个区找到HashMap,把ID作为key,返回的数据对象作为值放到HashMap中;
步骤5、线程通过ID找结果,若找到结果则发送并结束请求,若结果为空则等待,并再按通过ID找结果,直到找到或超时,结束请求,所述线程通过ID找结果过程采用细粒度的的数据块方式。
2.如权利要求1所述的服务端基于TCP的交互处理方法,其特征在于,所述创建长连接时,如果加载的配置信息需要鉴权,则用用户名和密码到服务端鉴权通过后,才有效完成创建长连接,整个交互过程只需一次鉴权,后续交互不用再鉴权。
3.如权利要求1所述的服务端基于TCP的交互处理方法,其特征在于,所述心跳方式为创建成功后的长连接没有数据发送状态下,每隔30秒发送一个心跳,测试连路,连路不通则重新创建连接。
4.如权利要求1所述的服务端基于TCP的交互处理方法,其特征在于,步骤1所述细粒度数据包括:一容器及存放的数据,该容器包括第一层及第二层。
5.如权利要求1所述的服务端基于TCP的交互处理方法,其特征在于,所述长连接等待有两种方式:一为等待一一通知方式;一为每隔一次的时间通过ID去找结果。
6.如权利要求1所述的服务端基于TCP的交互处理方法,其特征在于,所述步骤5中细粒度的数据块方式为把第一数据块细分为数个第二数据块,采用数条进程同时访问该数个第二数据块,并对该数个第二数据块进行同步控制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳天源迪科信息技术股份有限公司,未经深圳天源迪科信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210013898.7/1.html,转载请声明来源钻瓜专利网。