社区
C++ 语言
帖子详情
如何控制文件传输的速率?(顶着有分)(有满意答案加分)
theendname
2009-01-13 06:32:03
简单的TCP文件传输,我怎么能控制自己的下载速率呢?socket实现。
...全文
593
51
打赏
收藏
如何控制文件传输的速率?(顶着有分)(有满意答案加分)
简单的TCP文件传输,我怎么能控制自己的下载速率呢?socket实现。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
51 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MoonAndWind
2009-04-07
打赏
举报
回复
[Quote=引用 31 楼 yellowhwb 的回复:]
弄个timer,然后把下载的流量除以时间,得出速度,速度快了,就sleep一会儿,慢了就不sleep,不知道是否可行!
[/Quote]
感觉这个比较靠谱,难点应该在于这儿Sleep的频率
lovejklife
2009-01-22
打赏
举报
回复
不管是客户端还是服务器,只要任何一侧做控制,传输速率就下来了
你们说我说的对不对
lovejklife
2009-01-22
打赏
举报
回复
减小传输速率,还不好弄?人家都考虑加速
不管是客户端还是服务器,只要在send的循环里加上sleep就可以了呀,
sleep的时间可以根据发送的速率来调整。发送慢了接收测自然也就慢了。
同理
在recv的循环里加上sleep,sleep的时间可以根据recv的速率来调整。
接收慢了如果接收缓存满了发送端会减小发送窗口减低发送速度。
mycheche
2009-01-21
打赏
举报
回复
不懂,帮D
gaoshang212
2009-01-21
打赏
举报
回复
顶!
vbcpascal
2009-01-21
打赏
举报
回复
顶
xuxingok
2009-01-20
打赏
举报
回复
up
nullah
2009-01-20
打赏
举报
回复
我是来顶的~~
tanmeining
2009-01-20
打赏
举报
回复
[Quote=引用 35 楼 theendname 的回复:]
......
貌似客户端与服务器协商来进行带宽控制是个好方法(再次庆幸,我们是个coder)。
[/Quote]
这你得重写服务器和客户端,工作量太大了吧?
同时,传送的结构体,是否可以压缩?结构体小了,一次性发送的数据包是否也意味着小了?换句话说也就是所占用带宽是否也就小了?我也不太清楚,希望前辈们详细解释下。。。
theendname
2009-01-20
打赏
举报
回复
150分啊,咋没人了呢!!
theendname
2009-01-20
打赏
举报
回复
[Quote=引用 41 楼 tanmeining 的回复:]
引用 35 楼 theendname 的回复:
......
貌似客户端与服务器协商来进行带宽控制是个好方法(再次庆幸,我们是个coder)。
这你得重写服务器和客户端,工作量太大了吧?
同时,传送的结构体,是否可以压缩?结构体小了,一次性发送的数据包是否也意味着小了?换句话说也就是所占用带宽是否也就小了?我也不太清楚,希望前辈们详细解释下。。。
[/Quote]
本来就是个新的功能点,当然要全部重写;至于压缩传输,正在考虑中。
我这里问的是对带宽的控制问题; 用于在内网传输,速度太快,如果不加以限制,可能造成资源占用过高,影响客户机的功能,所以想根据客户机的动态功能形成一个公式,来计算传输的最佳流量,并实现控制,而且要尽量减少数据报的丢弃,减少内网带宽的占用!
kikikind
2009-01-20
打赏
举报
回复
我想对于TCP来说,连接了接收数据速度只能按网络的状态来确定了~~~~ 加大recv缓冲慢慢读,或都是减少recv缓冲等重传,对底层来说还是没有帮助呢,可以试一下QOS相关的socket设置~~~
theendname
2009-01-16
打赏
举报
回复
我是LZ,感谢大家帮忙。
1. 用setsockopt,设置socket的接收缓冲,弄成最小
设置接收缓冲区大小,只是控制了socket底层收发的缓冲,如果我的recv够快的话对带宽控制没什么作用。
2. 定时读取一点点,让socket的buffer一直满的,这样对方就写不过来了
其实这是方法之一,这种方法其实是利用了TCP传输的可靠性,当接收不正确,或被丢包后,重发。实际上了加大了链路包的发送。
3.我看了电驴的源码(再次感谢hydra1101 前辈的帮助),它是用设定recv缓冲区长度的方法来控制接收速度的,但他是怎样来调节数据报大小的,以防止数据报发生错误?
想到的:减少recv速度,可以沾满recv缓冲,那么send缓冲也可能就沾满了,这样send发送就会回WSAEMSGSIZE(应该是这个),需要服务重新发送,服务压力没有得到减小。
貌似客户端与服务器协商来进行带宽控制是个好方法(再次庆幸,我们是个coder)。
我抛砖引玉啦,大家再接再厉。
icesky_ff
2009-01-16
打赏
举报
回复
up
qqxiaoyatou
2009-01-16
打赏
举报
回复
学习up
zhyl0219
2009-01-16
打赏
举报
回复
UP
theendname
2009-01-16
打赏
举报
回复
顶
ZhengZhiRen
2009-01-15
打赏
举报
回复
[Quote=引用 9 楼 hydra1101 的回复:]
居然有人顶这个臭诸葛,人家是想控制带宽,你倒好,不但不省带宽还去丢数据。
[/Quote]
呵呵
vanta
2009-01-15
打赏
举报
回复
知道理论,没有实践过,看来需要继续学习
bingbingzhe
2009-01-15
打赏
举报
回复
窗口,,,窗口。。窗口
窗口,,,窗口。。窗口窗口,,,窗口。。窗口
可是设置窗口大小的吧,
加载更多回复(31)
实测对比:ToDesk、向日葵、AnyDesk在
文件传输
与延迟上的终极对决
本文通过真实环境测试,对比ToDesk、向日葵和AnyDesk三款远程
控制
工具在网络延迟、
文件传输
速率
、资源占用、安全机制及跨平台兼容性等方面的表现。ToDesk在延迟(最低13ms)和
文件传输
(4.5MB/s)上领先;向日葵强于稳定性与功能完整性;AnyDesk则侧重极简设计与国际节点优化。测试涵盖Windows/macOS/Android/iOS多端场景,并
分
析其在多任务、弱网、高负载等特殊条件下的适应能力。
wireshark
分
析tcp传输之文件上传
速率
问题
文章通过Wireshark
分
析TCP传输的细节,包括慢启动、拥塞避免、快速恢复等阶段,解释了网络包传输过程和丢包问题。强调了滑动窗口和拥塞窗口在
控制
传输
速率
中的作用,并提供了识别网络拥塞的指标。此外,讨论了接收窗口大小对传输
速率
的影响以及如何通过调整系统参数优化接收能力。
32、网络层习题及参考
答案
本文深入解析网络协议中的关键应用案例,如
文件传输
、远程登录、信用卡核对及电子资金转账的服务类型,探讨数据报与虚电路网络的路由机制,详解路由表构建与维护的算法,以及网络拥塞
控制
策略。同时,文章提供了组播树生成、令牌桶流量整形、路由器处理能力评估等实用算法,并讨论了IP
分
段重组、ARP协议作用、IPv6地址
分
配及IPv4向IPv6过渡的技术细节。
MPC8555E ATM
控制
器:内部
速率
模式与AAL2传输机制配置详解
本文深入解析MPC8555E ATM
控制
器的内部
速率
模式(Internal Rate Mode)与AAL2传输机制。重点涵盖BRG与FTIRR寄存器配置逻辑、多PHY
速率
匹配计算、AAL2发送流程、TCT/TxQD/BUFFER三级数据结构、部
分
填充(PFT)与优先级调度策略,以及二者协同优化语音与数据复用的实践方法。内容聚焦硬件寄存器编程、时钟
分
频计算、信元组装规则及调试避坑要点,适用于嵌入式通信系统底层开发。
计算机网络习题
答案
(第一章至第六章)
本文提供了计算机网络各章节的习题
答案
,涉及报文交换与
分
组交换的比较,包括存储-转发方式下
文件传输
时间的计算,以及报文交换与
分
组交换的公平性
分
析。还涵盖了TCP/IP协议、DNS解析、HTTP请求的时延计算,以及TCP连接的性能
分
析等主题。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章