CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 66249
王中王
: 所以啊,不如多研究P2P,少打那些CS协议的主意了
[阅读: 409] 2004-12-17 12:10:05
<空>
相关信息:
讨论一个多线程下载的问题
(312字)
(
王中王
[697]
2004-12-17 11:27
)
晕!亏你想得出来搬移的办法,不如考虑一下多线程上传更有意义。
(56字)
(
GoodHope
[577]
2004-12-17 11:34
)
现在有标准的支持多线程上传的协议吗?
(空) (
CJF
[410]
2004-12-17 11:38
)
没有
(空) (
GoodHope
[383]
2004-12-17 11:45
)
其实做这个也不难。。就像上面说,上传的时候,记录一些位置,最后服务器再合并起来就是了。。关键是没有标准的话,只能自己的客户端支持了
(空) (
CJF
[432]
2004-12-17 11:49
)
服务器做合并要有删除的权限的,除非能像flashget那样,找服务器先申请足够的空间。。
(12字)
(
dead_lee
[589]
2004-12-18 00:42
)
事实上,目前的几个常用下载工具都不是这么做的。可以看到一个唯一的文件大小在不断的增长
(空) (
王中王
[457]
2004-12-17 11:42
)
你没注意到结束的时候基本上都会忙一阵子?
(35字)
(
GoodHope
[421]
2004-12-17 11:47
)
你有没有注意到,一个流媒体文件,下载一半的时候去播放它,是可以播放到第一个下载中断点的
(29字)
(
王中王
[717]
2004-12-17 11:49
)
也没有什么啊,前面相邻的数据段先合并罢了。。
(空) (
CJF
[415]
2004-12-17 11:51
)
下载的数据并不是一整段下载完才写入文件,而是达到一定的数据(比如4K,通常可设置)就陆续写入文件
(115字)
(
王中王
[627]
2004-12-17 11:58
)
我们可以知道每个流应该插入的位置,和每个流的正确长度啊,难道还不知道什么时候合并?
(空) (
CJF
[509]
2004-12-17 12:03
)
的确随时可以合并,但不断的合并就意味着额外IO操作吧,我说的问题,就是这个问题啊?
(空) (
王中王
[508]
2004-12-17 12:11
)
我们分析一个文件的实际操作吧。。合并的操作其实没有多少的。。5线程下载的话,最终合并次数不会超过10次,而且我们可以采取就近合并的方法。。
(空) (
CJF
[516]
2004-12-17 12:26
)
一个4G的文件分成5段下载,你会在内存中下完800兆才写入磁盘文件嘛?
(50字)
(
王中王
[591]
2004-12-17 12:33
)
五段就不能写五个文件吗?我觉得你追求一个文件是没有意思的。。真要这样做不是不行,一边写,一边插进去就是了。。
(空) (
CJF
[461]
2004-12-17 12:37
)
问题是很多下载工具都是用一个文件实现的。我只想知道他们是怎么实现的
(空) (
王中王
[439]
2004-12-17 12:38
)
就是插进去咯。。不然怎么可能有你说的效果。。能放到首段
(空) (
CJF
[436]
2004-12-17 12:39
)
但我觉得这样有问题啊:
(48字)
(
王中王
[423]
2004-12-17 12:42
)
如果慢,就是你的代码效率不够~~这个操作绝对很快
(44字)
(
CJF
[439]
2004-12-17 12:49
)
唉,结了婚的男人………………
(空) (
GoodHope
[346]
2004-12-17 12:05
)
你啊~
(空) (
CJF
[372]
2004-12-17 12:06
)
这也简单,就是效率低一点而已。
(233字)
(
GoodHope
[468]
2004-12-17 12:02
)
不可能段里还要分块:
(142字)
(
王中王
[463]
2004-12-17 12:08
)
靠,说到这份上了还不明白。
(142字)
(
GoodHope
[477]
2004-12-17 12:16
)
明白。可各个线程肯定都是分别进行“顺序存储”,不管之间的性能差异如何,前面线程进行存储时都有问题存在
(空) (
王中王
[383]
2004-12-17 12:27
)
我受不了了!!!
(458字)
(
GoodHope
[481]
2004-12-17 12:40
)
你该不会认为2个线程下载,文件就对半一砍,分成两段吧?
(55字)
(
GoodHope
[512]
2004-12-17 12:46
)
你看一下蚂蚁或是快东、NetTransport的日志信息:
(92字)
(
王中王
[464]
2004-12-17 12:57
)
进来看:
(140字)
(
王中王
[489]
2004-12-17 13:00
)
哦,现在的分段下载基本都是这样的。。
(空) (
CJF
[448]
2004-12-17 13:02
)
我求你了,你就当我是个P,放了我吧………………
(14字)
(
GoodHope
[347]
2004-12-17 13:03
)
扑!你走吧!把你放了。你说不明白就不要说了
(空) (
王中王
[338]
2004-12-17 13:04
)
看看蚂蚁或是快车的下载状态图,肯定不是你这种思路 。
(空) (
王中王
[446]
2004-12-17 12:50
)
我错了,您放过我吧…………
(98字)
(
GoodHope
[513]
2004-12-17 13:01
)
你才是猪头!你不要一个劲的猜,你去观察一下那些软件嘛
(69字)
(
王中王
[468]
2004-12-17 13:07
)
靠!你用快车多线程下文件是一点点的涨的啊!都是一开始就分配了。
(46字)
(
GoodHope
[522]
2004-12-17 13:13
)
你在选项中的其它项里的“获得文件大小后分配空间选项”关掉试一试
(空) (
王中王
[481]
2004-12-17 16:06
)
上传和下载还不是一回事。让服务器把对它的上传当成对客户端的下载不就行了嘛
(54字)
(
王中王
[464]
2004-12-17 11:46
)
…………………………
(34字)
(
GoodHope
[493]
2004-12-17 11:54
)
那些八百年的协议就定在那了,如果被你改了,那还叫http或FTP协议嘛?
(71字)
(
王中王
[538]
2004-12-17 12:00
)
这是没有办法的咯。。你可以完成后,让更多人用,那就变成事实协议就是了。。看你的影响力了
(空) (
CJF
[375]
2004-12-17 12:05
)
所以啊,不如多研究P2P,少打那些CS协议的主意了
(空) (
王中王
[408]
2004-12-17 12:10
)
我觉得BT比较好。。真的不错。。
(空) (
CJF
[337]
2004-12-17 12:12
)
好Y个头!没有BT、ED的时候,CS多快啊!!!看看现在,简直没得玩了!
(空) (
GoodHope
[379]
2004-12-17 12:17
)
这个。。。
(4字)
(
CJF
[384]
2004-12-17 12:27
)
……………………………………………………………………………………………………
(空) (
GoodHope
[381]
2004-12-17 12:07
)
我的一个想法,将每个下载的流,分别记录下它们的起始位置,全部完成后,再合并起来。。就不需要插入的操作了~~
(空) (
CJF
[432]
2004-12-17 11:37
)
事实上,目前的几个常用下载工具都不是这么做的。可以看到一个唯一的文件大小在不断的增长
(空) (
王中王
[451]
2004-12-17 11:42
)
先下载,最后合并嘛。分成几块,就保存为几个临时文件。
(空) (
pcplayer
[570]
2004-12-17 11:42
)
事实上,目前的几个常用下载工具都不是这么做的。可以看到一个唯一的文件大小在不断的增长
(空) (
王中王
[422]
2004-12-17 11:43
)
一个文件的办法---》
(174字)
(
pcplayer
[483]
2004-12-17 11:56
)
嘿嘿。。。如果是下载D9容量的光盘映像,你就死定了。。
(空) (
CJF
[1157]
2004-12-17 12:01
)
I服了Y!这种办法也…………
(空) (
GoodHope
[395]
2004-12-17 12:03
)
怎么“插进”?还不是象我说的那样移动数据?
(138字)
(
王中王
[489]
2004-12-17 12:03
)
用点力呗
(空) (
GoodHope
[479]
2004-12-17 12:06
)
涂点润滑油(空) (GoodHope [0] 今天 20:06) (空) (CJF [0] 今天 20:07)
(空) (
坏鼠标
[349]
2004-12-17 13:06
)
再用点力呗 (空) (GoodHope [0] 今天 20:06)
(空) (
CJF
[406]
2004-12-17 12:07
)
你不会直接插在文件的结尾啊?按顺序来就行了。
(78字)
(
pcplayer
[434]
2004-12-17 12:37
)
如果前面那一段没当完,后面的先当完,则后面那一段先放着,等前面那一段接到文件尾巴上了,再把后面那一段接上去不就行了。
(空) (
pcplayer
[453]
2004-12-17 16:30
)
有内存映像文件应该是最高校的办法
(空) (
老玉米
[471]
2004-12-17 12:53
)
。
(10字)
(
CJF
[429]
2004-12-17 13:05
)
关键在于怎么写文件
(空) (
王中王
[601]
2004-12-17 13:06
)
几个线程顺序写一个文件,每次写的时候在写的数据块前面加个头,记录本块在原始文件中的位置,长度等信息,都完成之后合并一下就是了.
(空) (
bjwf
[525]
2004-12-17 15:00
)
你有没有注意到,一个流媒体文件,下载一半的时候去播放它,是可以播放到第一个下载中断点的 (29字) (王中王 [6] 今天 19:49)
(空) (
王中王
[592]
2004-12-17 15:18
)
仔细的观察了一下FlashGet和NetTransport的形为,结论如下:
(177字)
(
王中王
[507]
2004-12-17 16:09
)
Goodhope自负的分段分块理论、什么结束时都忙上一阵子等言论全部不攻自破
(14字)
(
王中王
[454]
2004-12-17 16:19
)
P,文件慢慢增加的做法是最愚蠢的。既省不了多少空间,又暴露了开发者的无能。
(77字)
(
GoodHope
[559]
2004-12-18 05:32
)
几个主流的下载工具都支持这两种模式啊。供用户自己选择而已。只是快车是缺省的先分配空间
(空) (
王中王
[499]
2004-12-18 14:42
)
那这个和预先把文件直接设置为文件的原始大小的办法是一样的嘛。但是,最后一段接上去了,然后才收到第2段,不还是要插进去吗?
(空) (
pcplayer
[422]
2004-12-17 16:23
)
是啊,但是多少会在启动的时候省一点空间,可以边下载边清理空间来放文件
(36字)
(
王中王
[536]
2004-12-17 16:29
)
按你的这段描述做,还是需要在文件中间插入数据。按我的办法做,就不需要在中间插入数据。
(空) (
pcplayer
[431]
2004-12-17 16:31
)
不用。其它线程都是在已申请的空间上写数据。
(30字)
(
王中王
[492]
2004-12-17 16:35
)
如果不在文件中间插入,还是我的办法:让这第10个线称先等着,等到它前面的线称都接收到并把数据接到文件的尾巴上了,才把自己接到文件的尾巴上。
(空) (
pcplayer
[541]
2004-12-17 16:25
)
那如果等待时死了机,下载的东西没了,如果按流量计费就惨了
(32字)
(
王中王
[445]
2004-12-17 16:32
)
死机了?你写的磁盘文件也没用,鬼知道WINDOWS是不是真的写上去了?所以,这里根本不用考虑死机。
(空) (
pcplayer
[510]
2004-12-17 16:34
)
这里死机指的是进程非正常终止。我比较赞成预分配空间的做法,然后就是开辟大内存缓冲分块存储
(空) (
Miracle
[592]
2004-12-17 20:26
)
要是怕内存缓冲因为进程非正常终止带来太大的损失,可以减小内存缓冲尺寸,然后配合磁盘缓存
(空) (
Miracle
[489]
2004-12-17 20:28
)
靠,这和一次分配整个文件有多大区别。Y仔细看看自己的要求!
(24字)
(
GoodHope
[408]
2004-12-18 05:28
)
这种肯定是内存映像文件了,几个线程个写一块
(空) (
老玉米
[479]
2004-12-18 05:38
)
别又丫又靠的。我是说能正常的播放到第一个下载断点
(空) (
王中王
[512]
2004-12-18 14:50
)
Y自己没分清几种不同的下载模式,需求都没有弄明白!
(3字)
(
GoodHope
[519]
2004-12-18 05:35
)
cute ftp是分段下载,完成后再合并的,符合GH说的下载完后忙一阵的说法.
(86字)
(
oyjt
[874]
2004-12-18 05:21
)
网上帖子很多啊,自己搜啊,懒人啊
(空) (
mhappy
[467]
2004-12-18 05:39
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录