社区
网络编程
帖子详情
有什么好办法来控制socket的传输速度?
zolen
2008-10-15 09:12:22
类似于现在那些下载软件(bt 电驴 迅雷 快车)里的限速功能. 我的程序里既是客户端又是服务端(有iocp方式的异步文件发送,又有堵塞方式的多线程文件接收),做的是自己定义的一种多点p2p传输工具. 现在就限速功能做得不如意. 不知道那些著名下载软件用的是一种什么方法,做到限速比较精确.各位能给点思路吗? Sleep就不用说了,那种有点儿戏.
...全文
633
9
打赏
收藏
有什么好办法来控制socket的传输速度?
类似于现在那些下载软件(bt 电驴 迅雷 快车)里的限速功能. 我的程序里既是客户端又是服务端(有iocp方式的异步文件发送,又有堵塞方式的多线程文件接收),做的是自己定义的一种多点p2p传输工具. 现在就限速功能做得不如意. 不知道那些著名下载软件用的是一种什么方法,做到限速比较精确.各位能给点思路吗? Sleep就不用说了,那种有点儿戏.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shixin.beny
2012-04-08
打赏
举报
回复
用sleep 方法可以控制,但是这样的方法在读取速度却有问题。例如你设置发送速度为2M,可能这2M在前一两毫秒就已发送完成,那一秒中剩下的八九百毫秒就用来sleep,sleep后再把速度置为0,为了下一秒统计。
我是用定时器来读取这个速度统计值的,就可能会在 sleep 后几毫秒读取这个值,这个值就可能非常小了。
请问有没有其他的方法呢?
wp03141592
2009-01-03
打赏
举报
回复
gfdsgdfsgdf
blackcat242
2008-10-20
打赏
举报
回复
每次传输完sleep一下
gby630
2008-10-19
打赏
举报
回复
好像可以控制数据包的大小啊
hurryboylqs
2008-10-19
打赏
举报
回复
根据速度控制发包大小
Wenxy1
2008-10-19
打赏
举报
回复
自己可以控制在socket 上发送数据的速度。:)
WinEggDrop
2008-10-17
打赏
举报
回复
[Quote=引用楼主 zolen 的帖子:]
类似于现在那些下载软件(bt 电驴 迅雷 快车)里的限速功能. 我的程序里既是客户端又是服务端(有iocp方式的异步文件发送,又有堵塞方式的多线程文件接收),做的是自己定义的一种多点p2p传输工具. 现在就限速功能做得不如意. 不知道那些著名下载软件用的是一种什么方法,做到限速比较精确.各位能给点思路吗? Sleep就不用说了,那种有点儿戏.
[/Quote]
楼主搞笑了吧.自己写的东西也不能限速?随便简单的数学方法计算下发送用的时间,发送的数据,然后再Sleep()下,这是最简单的,基本上大部分阻塞I/O模型都是这样做的.如果想平滑的话,使用QOS吧,这东西比较麻烦的,99%的软件都是自己限制速度的(ftp服务器,代理服务器什么的)
microyzy
2008-10-16
打赏
举报
回复
都是自个儿写的,就可以自己计算最近每秒的传输速度,太快了,可以缓缓,可能需要一个管理线程来统计速度,并随时和个各个下载线程交互
zolen
2008-10-15
打赏
举报
回复
我是用socket api写的,文件传输稳定和速度都很好,就是太占用带宽了.几乎下载和上传都用的带宽的极限速度.严重影响其他程序访问网络的速度.5555555.原来快也是种罪过.
socket
上传输大文件时,如何能提高传输的效率?
下哔片什么的我们这里不讨论,但是首先你要明确你的网络类型,你的带宽允许你多大的传输量才好写程序。网卡我们暂时不讨论。 2. 服务器情况。 国内的网络运营商都会 限制很多机房服务器的上传限额。下行200k 上行...
socket
详解
1. 什么是
socket
?
socket
的原意是“插座”,在计算机通信领域,
socket
被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过
socket
这种约定,一台计算机可以接收其他计算机的数据,也可以...
C/C++
socket
网络编程扫盲篇
引言
socket
是“套接字”的意思,是计算机之间进行通信的一种约定,也可以认为是一种技术。通过
socket
这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
socket
的典型应用就是 Web ...
套接字有哪些类型?
socket
有哪些类型?
socket
有哪些类型? 这个世界上有很多种套接字(
socket
),比如 DARPA Internet 地址(Internet 套接字)、本地节点的路径名(Unix套接字)、CCITT X.25地址(X.25 套接字)等。但本教程只讲第一种套接字——...
怎么建立
socket
长连接???
另外,为了获得适当的
传输速度
,则需要TCP花费额外的回路链接时间(RTT)。每一次链接的建立需要这种经常性的开销,而其并不带有实际有用的数据,只是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。...
网络编程
18,358
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章