SOCKET 传输大文件应该怎么做?

筑台封神 筑台封神 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟第一次发帖,请大牛们多多捧场!
现在公司要我做一个C语言的SOCKET通信(TCP),要求是千兆网最低50M每秒的传输速度!(S-send ;C -recv)
小弟试着写了一下,遇到了以下问题:
1,不建立C/S端的缓冲,直接传输,只能传输小文件,遇到大文件就会出错
出现1的问题,是因为发端太快,造成丢包
2,基于1,我想到虽然是流传输,是不是也可以像UDP那样自己自己定义一个校验机制,就是将一个文件切块,然后每一个块加上长度,这样,在传输到C端之后,必须得到C端的确认(也就是C recv的和块中定义的长度一致),才发下一个块。
2的方法,是能解决传输大文件的问题,但是速度慢,达不到要求!
3,基于2的问题,我想到,是不是可以在S端自己定义一个缓冲区:
定义缓冲用了两种方法,一是维护一个链表,动态的定义。二是直接划分出一块内存,静态的缓冲!
目前正在用3的思路在写代码。
想问问各位大牛们,有什么好的建议!!

欢迎大牛们们发言!
小弟在此谢过!
...全文

相关推荐

评论 21
收藏 已收藏
分享
返回顶部
筑台封神
C语言 70,039 成员 243,237 内容