SOCKET 传输大文件应该怎么做?
小弟第一次发帖,请大牛们多多捧场!
现在公司要我做一个C语言的SOCKET通信(TCP),要求是千兆网最低50M每秒的传输速度!(S-send ;C -recv)
小弟试着写了一下,遇到了以下问题:
1,不建立C/S端的缓冲,直接传输,只能传输小文件,遇到大文件就会出错
出现1的问题,是因为发端太快,造成丢包
2,基于1,我想到虽然是流传输,是不是也可以像UDP那样自己自己定义一个校验机制,就是将一个文件切块,然后每一个块加上长度,这样,在传输到C端之后,必须得到C端的确认(也就是C recv的和块中定义的长度一致),才发下一个块。
2的方法,是能解决传输大文件的问题,但是速度慢,达不到要求!
3,基于2的问题,我想到,是不是可以在S端自己定义一个缓冲区:
定义缓冲用了两种方法,一是维护一个链表,动态的定义。二是直接划分出一块内存,静态的缓冲!
目前正在用3的思路在写代码。
想问问各位大牛们,有什么好的建议!!
欢迎大牛们们发言!
小弟在此谢过!
现在公司要我做一个C语言的SOCKET通信(TCP),要求是千兆网最低50M每秒的传输速度!(S-send ;C -recv)
小弟试着写了一下,遇到了以下问题:
1,不建立C/S端的缓冲,直接传输,只能传输小文件,遇到大文件就会出错
出现1的问题,是因为发端太快,造成丢包
2,基于1,我想到虽然是流传输,是不是也可以像UDP那样自己自己定义一个校验机制,就是将一个文件切块,然后每一个块加上长度,这样,在传输到C端之后,必须得到C端的确认(也就是C recv的和块中定义的长度一致),才发下一个块。
2的方法,是能解决传输大文件的问题,但是速度慢,达不到要求!
3,基于2的问题,我想到,是不是可以在S端自己定义一个缓冲区:
定义缓冲用了两种方法,一是维护一个链表,动态的定义。二是直接划分出一块内存,静态的缓冲!
目前正在用3的思路在写代码。
想问问各位大牛们,有什么好的建议!!
欢迎大牛们们发言!
小弟在此谢过!
...全文
相关推荐
Socket传输大文件(发送与接收源码)
对于大文件传输,可以采用断点续传技术,允许在传输中断后从上次断点处继续传输,提高用户体验。总的来说,通过C#的Socket库,我们可以实现高效、可靠的文件传输服务。
java socket 大文件传输,快速传输(包的分片,组装)源码
Java Socket 大文件传输是网络编程中的一个关键领域,它涉及到高效的数据传输、包的分片与组装,以及网络协议的选择。
C# socket TCP 大文件传输同时实现断点续传
该项目基于C#实现TCP协议下的大文件传输,支持断点续传功能。客户端通过Socket与服务器通信,采用多线程机制处理文件分包发送与消息接收,并结合配置文件管理连接参数和存储路径。代码结构清晰,涵盖命令
python:socket传输大文件示例
在Python编程中,Socket是网络通信的基本模块,用于实现不同计算机之间的数据传输。本文将深入讲解如何使用Python的Socket库来传输大文件。
C# Socket实现大文件分包传输
本文将深入探讨如何使用C#语言通过Socket实现大文件的分包传输,以解决在数据传输过程中可能遇到的网络拥堵、内存限制等问题。首先,理解Socket的基本概念。


