VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1919|回复: 8

俺写的IOCP为什么传输文件的速度就这么慢了

[复制链接]
50_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-12 09:23:52 | 显示全部楼层 |阅读模式
3驿站币
俺写的IOCP为什么传输文件的速度就这么慢了,
IOCP:while读取文件数据,读一次 Send()一次,

这种发送是不是很落后呀,下面的接收要接收很久,像QQ收发文件就很快,他是怎么实现的





上一篇:请问如何通过那些VC API 来实现局域网文件的下载,上传,删除呢?
下一篇:VC++做工控画面,怎样做按压式按钮?
24_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-12 10:34:59 | 显示全部楼层
多线程,反汇编一下QQ就知道了
51_avatar_middle
最佳答案
82 
online_admins 发表于 2016-7-12 18:12:06 | 显示全部楼层
缓冲区设置的大一点应该能提速不少,不知楼主当前设置的是多少?
98_avatar_middle
最佳答案
0 
online_moderator 发表于 2016-7-13 10:25:42 | 显示全部楼层
估计还是你代码逻辑问题,一般都是文件操作是瓶颈,可以一个线程不停的读数据,读取粒度大一些,然后丢个网络去发送就好。
20_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-14 17:09:55 | 显示全部楼层
直接用sendpackage啊  应该是这个函数
20_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-16 10:37:33 | 显示全部楼层
naxienian3 发表于 2016-7-15 21:59
别扯蛋了好不?呵呵

抱歉 记错了  是transmitfile  和 transmitpackage 这两个函数
05_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-17 20:53:34 | 显示全部楼层
读取一次,发送一次,本来io就慢,你还把两个io串行处理,  并行处理吧 ,逻辑处理好就行了。
你保证发送的时候,send缓冲区总有数据就 提高了不少。
家庭宽带都是上传有限制,上面保证你和别人传送的速度提高了。
但是局域网基本上可以达到10M/s速度。传送的瓶颈是磁盘io,在局域网里面可以使用多线程传送,这样就又提高了不少。
47_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-18 09:45:10 | 显示全部楼层
人家明显是多线程并行处理,syc老大在http 的时候不是说过断点续传么,把断点搞成人工分段,最后统计结束
91_avatar_middle
最佳答案
0 
在线会员 发表于 2016-7-25 08:58:57 | 显示全部楼层
早上起来,学习一下
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-22 12:11

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表