TCP文件传输时,缓冲区的开辟

代码i小学生 2016-07-05 09:19:52
我用c++ 写了一个局域网内远程文件传输的程序,在文件的大小较大时文件的发送很慢。我在网上有有查到的方法是把我保存数据的缓冲区的大小增大。但是这个缓冲区的开辟大小和带宽硬盘的传输速率有关。缓冲区太大浪费,太小又不能合理的运用带宽。

现在我开辟的缓冲区是4096个字节。代码我就不贴了,我主要是想要个解决的方案或者了解保存数据缓冲区开辟的合理值是怎么算出来的。

在线等。。。。。。
...全文
178 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxingway 2016-07-05
  • 打赏
  • 举报
回复
你可以根据此方法,动态开辟缓冲区,达到空间和时间的最优。
zhxingway 2016-07-05
  • 打赏
  • 举报
回复
4096字节这个缓冲区太小了啊 由于读硬盘的速度比发送速度快好多倍,才需要缓冲区。 假如读硬盘速度是10M/s,发送速度是8M/s 文件大小是100M,并且采用两个线程分别读文件和发送数据。 那么读完文件的时间是10s,在这10秒的时间里只能发送80M的数据,那么你的缓冲区设置成20M就可以无阻塞读取和发送了。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧