[发明专利]一种处理报文的方法有效
申请号: | 201510437962.8 | 申请日: | 2015-07-23 |
公开(公告)号: | CN105119981B | 公开(公告)日: | 2019-06-07 |
发明(设计)人: | 杭旭 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/863 |
代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 201620 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 报文 方法 | ||
本发明公开了一种处理报文的方法,用于基于CPE广域网管理协议的客户端,包括下述步骤:S1.所述客户端与一服务器建立长连接;S2.所述客户端监听所述长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;S3.所述客户端对所述数据包进行解析,根据解析结果创建对应的任务,并将所述任务添加至一预设的队列中,返回执行所述步骤S2;S4.所述客户端根据预设的所述队列的顺序逐条处理所述队列中的所述任务,并将所述任务的处理结果发送至所述服务器,返回执行所述步骤S2。本发明避免了报文交互过程中容易出错的情形,提高了通道利用率。
技术领域
本发明涉及网络领域,尤其涉及一种基于长连接用于处理报文的方法。
背景技术
传统的TR-069(CPE广域网管理协议)客户端普遍是基于会话机制与服务器短连接,为了解决服务器控制内网TR-069客户端的问题,需要将原本在开始会话时建立连接在结束会话时断开连接的短连接改为客户端启动后主动连接服务器且连接建立后连接一直保持不断的长连接。虽然长连接的引入解决服务器控制内网TR-069客户端的问题,但却引入了另一个问题:原本的会话机制无法正确工作,并且要求服务器和客户端必须按照顺序交互报文,只能等一个交互会话结束后才能开始另一个会话,如图1所示:服务器(Server)向客户端(Client)发送一空报文以通知客户端开始会话(session),客户端通知(Inform)服务器准备就绪,服务器通过远程过程调用协议(Remote Procedure Call Protocol,RPC)向客户端发送处理报文,客户端将处理报文进行处理并通过RPC协议向服务器回复处理结果,服务器向客户端发送通知响应(Inform Response),结束会话。一旦会话乱序就会导致客户端处理异常。但由于长连接一直处于连接状态的特点,致使只要上层有需要就会通过服务器向客户端发送报文,因此会发生如图2所示的会话错误(session error)。
发明内容
针对现有的基于会话机制的长连接存在的上述问题,现提供一种旨在实现基于长连接可避免报文交互过程中出错情形的处理报文的方法。
具体技术方案如下:
一种处理报文的方法,用于基于CPE广域网管理协议的客户端,包括下述步骤:
S1.所述客户端与一服务器建立长连接;
S2.所述客户端监听所述长连接是否有数据包传送,若是,执行步骤S3;若否,执行步骤S4;
S3.所述客户端对所述数据包进行解析,根据解析结果创建对应的任务,并将所述任务添加至一预设的队列中,返回执行所述步骤S2;
S4.所述客户端根据预设的所述队列的顺序逐条处理所述队列中的所述任务,并将所述任务的处理结果发送至所述服务器,返回执行所述步骤S2。
优选的,在执行所述S3之前,还包括:
所述客户端提供一缓冲区用以存储接收到的所述数据包,并从所述缓存区中读取所述数据包。
优选的,每一所述数据包中包括复数条报文,每一条所述报文对应一条所述任务。
优选的,所述步骤S3包括:
S31.所述客户端对所述数据包进行解析,获取所述数据包中的复数条所述报文;
S32.所述客户端根据获取的所述报文创建与所述报文对应的所述任务;
S33.所述客户端根据所述数据包的包头指示的顺序,将所述报文对应的所述任务添加于所述队列中。
优选的,在执行所述步骤S4之前还包括:
判断所述队列中是否存在未执行的所述任务,若是,执行所述步骤S4;若否,返回执行所述步骤S2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510437962.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种EMCCD相机成像与数据传输系统
- 下一篇:网络连接装置及系统