搜索
bottom↓
回复: 9

tcp大数据传输过程中被中断应该如何处理呢?

[复制链接]
(4627706)

出0入22汤圆

发表于 2021-6-8 16:55:44 | 显示全部楼层 |阅读模式
如题,比如我从电脑向板子传输4G的数据,传输方式使用TCP。通常情况下tcp不需要考虑可靠性和顺序性。不过有些情况下需要进行处理。
如果在传输到1G的时候,tcp连接断了,那么两边再次连接起来的时候,是不是需要通过交互,告诉电脑从哪个地方开始断点续传?
那么刚刚断开的地方,板子收到的数据可靠性能保证正确吗?
还是说需要丢弃一部分,让电脑多往前传一点?
如果是的话,一般这种情况,丢弃多少是能够保证不出错的?
谢谢!
(4627243)

出0入0汤圆

发表于 2021-6-8 17:03:27 | 显示全部楼层
去看看http,断点续传功能就可以了
(4626706)

出5入182汤圆

发表于 2021-6-8 17:12:24 | 显示全部楼层
传输一点,自己内部累加一个长度就好了,TCP可以包证收到的数据包是对的
(4620442)

出0入0汤圆

发表于 2021-6-8 18:56:48 | 显示全部楼层
把大数据分为多个小数据包,传完一包确认一下,发生中断,从中断之前的一包数据开始传
(4619639)

出0入0汤圆

发表于 2021-6-8 19:10:11 | 显示全部楼层
请加上分片校验功能,不要相信任何人,包括你自己。
(4618794)

出0入46汤圆

发表于 2021-6-8 19:24:16 | 显示全部楼层
如果你用http协议,那么确保服务端支持断点续传,接收端需要做断点支持。如果是你自己直接基于tcp实现,那么接收到数据缓存块写入文件之后,文件长度上能知道你已经接收了多少。下次向服务器发请求,从某个位置开始就行。也就稍微复杂一些。
(4561316)

出0入0汤圆

发表于 2021-6-9 11:22:14 | 显示全部楼层
分包啊,tcp自定义协议传大文件必须要分包,不仅仅是断点续传的需求,合理分包大小还可以极大提高tcp传输效率
(4484901)

出0入4汤圆

发表于 2021-6-10 08:35:49 | 显示全部楼层
分包.  一个包1400byte多点.  建立连接后, 由服务器发回文件名字, 起始字节, 包序号........
(4483617)

出0入42汤圆

发表于 2021-6-10 08:57:13 | 显示全部楼层
tcp断了,之前传送一半的数据肯定就没有了, 传送上G大小的数据,工程上不会使用一个TCP包扔过去就不管的方案
(4482478)

出0入29汤圆

发表于 2021-6-10 09:16:12 | 显示全部楼层
你板子上装个迅雷不就搞定了?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-8-1 06:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表