社区
网络编程
帖子详情
有什么好办法来控制socket的传输速度?
zolen
2008-10-15 09:12:22
类似于现在那些下载软件(bt 电驴 迅雷 快车)里的限速功能. 我的程序里既是客户端又是服务端(有iocp方式的异步文件发送,又有堵塞方式的多线程文件接收),做的是自己定义的一种多点p2p传输工具. 现在就限速功能做得不如意. 不知道那些著名下载软件用的是一种什么方法,做到限速比较精确.各位能给点思路吗? Sleep就不用说了,那种有点儿戏.
...全文
590
9
打赏
收藏
有什么好办法来控制socket的传输速度?
类似于现在那些下载软件(bt 电驴 迅雷 快车)里的限速功能. 我的程序里既是客户端又是服务端(有iocp方式的异步文件发送,又有堵塞方式的多线程文件接收),做的是自己定义的一种多点p2p传输工具. 现在就限速功能做得不如意. 不知道那些著名下载软件用的是一种什么方法,做到限速比较精确.各位能给点思路吗? Sleep就不用说了,那种有点儿戏.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
上传输大文件时,如何能提高传输的效率?
2019独角兽企业重金招聘Python工程师标准>>> ...
socket
详解
1. 什么是
socket
?
socket
的原意是“插座”,在计算机通信领域,
socket
被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过
socket
这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 1.1 UNIX/Linux 中的
socket
是什么? 在 UNIX/Linux 系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。 ...
C/C++
socket
网络编程扫盲篇
引言
socket
是“套接字”的意思,是计算机之间进行通信的一种约定,也可以认为是一种技术。通过
socket
这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
socket
的典型应用就是 Web 服务器和浏览器:浏览器获取用户输入的URL,向服务器发起请求,服务器分析接收到的URL,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,就将文字、图片、视频等元素呈现给用...
套接字有哪些类型?
socket
有哪些类型?
套接字有哪些类型?
socket
有哪些类型? 这个世界上有很多种套接字(
socket
),比如 DARPA Internet 地址(Internet 套接字)、本地节点的路径名(Unix套接字)、CCITT X.25地址(X.25 套接字)等。但本教程只讲第一种套接字——Internet 套接字,它是最具代表性的,也是最经典最常用的。以后我们提及套接字,指的都是 Internet 套接字。 根据数据的传输方式,可以将 Internet 套接字分成两种类型。通过
socket
() 函数创建连接时,必须告诉它使用哪
怎么建立
socket
长连接???
http://bbs.chinaunix.net/thread-709365-1-1.html http://topic.csdn.net/t/20040810/19/3261335.html 通俗的说连接后不关就是长连接,呵呵. 给你举个例子,作上网的代理:proxy client proxy server 比如c要访问sohu的server p把s所有的
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章