[发明专利]一种基于双线程的文件传输方法有效
申请号: | 201710421095.8 | 申请日: | 2017-06-07 |
公开(公告)号: | CN107172181B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 张奕敏;孙宝喜;翟军锋 | 申请(专利权)人: | 河南辉煌城轨科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F9/54 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 黄红梅 |
地址: | 450001 河南省郑*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 双线 文件传输 方法 | ||
本发明提供一种基于双线程的文件传输方法,包括以下步骤:数据包发送线程,将文件按从1到n的顺序分成n个子数据包并将子数据包个数n通过串口发送给数据包接收线程;数据包接收线程,根据子数据包个数n建立一个1到n排列的队列;数据包发送线程以固定频率,按照1到n的顺序向串口发送子数据包,同时检测是否接收到数据包接收线程发送的需要重发的子数据包编号或者文件传输完毕通知;若接收到文件传输完毕通知,数据包发送线程停止;若接收到需要重发的子数据包编号,则优先发送相应编号的子数据包;若均没有收到,则继续按顺序发送下一个子数据包。
技术领域
本发明涉及一种文件传输方法,具体的说,涉及了一种基于双线程的文件传输方法。
背景技术
城市轨道交通自动售检票系统的终端设备如自动售票机、半自动售票机、闸机、自动取票机、查询机等均从车站中心服务器上获取各种参数文件、程序文件,然后再将这些文件传送给票卡处理设备。通常城市轨道交通自动售检票系统的终端设备向票卡处理设备传送文件时常采用串口通信方式,如图1所示,发送端只有在接收到接收端的反馈时才会继续发送下一个数据包,当文件比较大时,由于这种串口通信的等待环节较多,单线程执行周期较长,因此传输时间也比较长,还容易出现错误。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种基于双线程的文件传输方法,具有方法简单、用时少的优点。
为了实现上述目的,本发明所采用的技术方案是:一种基于双线程的文件传输方法,包括以下步骤:
准备阶段
数据包发送线程,将文件按照固定长度分割为n个数据块,每个数据块封装成一个子数据包,按照在文件中的顺序对子数据包从1到n进行编号,并将子数据包个数n通过串口发送给数据包接收线程;
数据包接收线程,从串口中接收数据包发送线程发送的子数据包个数n,并建立一个由子数据包编号1到n排列的队列;
传输阶段
数据包发送线程以固定频率,按照1到n的发送顺序,向串口发送子数据包,同时检测是否接收到数据包接收线程发送的需要重发的子数据包编号或者文件传输完毕通知;若接收到文件传输完毕通知,数据包发送线程停止;若接收到需要重发的子数据包编号,则优先发送相应编号的子数据包;若均没有收到,则继续按顺序发送下一个子数据包;
数据包接收线程接收串口发送的当前子数据包后,根据当前子数据包的编号x将队列中相应的子数据包编号删除,判断队列是否为空,若为空,则向数据包发送线程发送文件传输完毕通知,数据包接收线程停止;若不为空,则判断队列中是否还有小于x的子数据包编号,若有,返回该子数据包编号至数据包发送线程,若无,等待接收下一个子数据包。
基于上述,若超过预设时间,数据包接收线程没有接收到串口发送的子数据包,且队列不为空,则停止数据包发送线程和数据包接收线程。
基于上述,数据包发送线程或数据包接收线程停止后,清理对应线程的内存数据。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本发明采用双线程来进行文件的传输,同时数据包发送线程以固定间隔向串口发送子数据包,而不用考虑数据包接收线程是否接收到了数据包,数据包接收线程也实时根据接收到的数据包编号向数据包接收线程反馈需要重发的数据包编号,发送过程和接收过程同时进行,有效解决了串口通信速度慢,易出错的问题,具有方法简单、用时短的优点。
附图说明
图1是传统的串口通信过程;
图2是本发明的文件传输方法流程示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南辉煌城轨科技有限公司,未经河南辉煌城轨科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710421095.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大缸损纸及纸屑收集装置
- 下一篇:一种采用无硫蒸煮工艺生产板皮浆的方法