话题124584的标题是: 多线程的下载(比如NETANTS)如何实现?要原理! (100分)
分类:多线程 meihong (1999-08-07 16:42:00)
多线程的下载(比如NETANTS)如何实现?要原理!
pegasus (1999-08-07 18:44:00)
我就喜欢原理,
实现不会耶!
HTTP的请求头中可以带有一个叫做range的域,指出需要的字节范围
例如:
Get /dephibbs/demo.zip HTTP/1.0
host:www.gislab.ecnu.edu.cn
byte:234-678
就指出只需要234到678字节的内容(从0字节算起是第一个字节)
如果HTTP服务器支持range,那么下载程序就可以根据服务器返回的目标文件
的长度(在返回信息的Content-length里面),生成多个线程序分别负责一个字
节范围,这样就能够多线程下载来提高下载速度。
实现的时候本地哥哥现成的工作情况的日志很重要,不然下载到一半停了之
后就很难重新拼成一个完整的目标文件了
nuke (1999-08-07 18:48:00)
呵呵!
原理很简单的哦
把一个文件分成几块
然后发出几个不同请求分别下载每一块的内容。
然后再连起来组成一个好文件。
就和集装运输一样哦!
pegasus (1999-08-07 19:14:00)
实现的时候本地哥哥现成的工作情况的日志很重要,不然下载到一半停了之
^^^^^^^^^^^^^^^^^^
各个线程, Sorry, 太马虎了
ftp没有HTTP那么好,但是可以指定起始位置,如果服务器支持的话也
能够多线程下载
Another_eYes (1999-08-07 19:52:00)
哦.
敬佩pegasus一丝不苟的精神. 不情之请: 能不能给我一份ftp的命令列表? (eYes网盲, 准备
学了) 不好意思, 用了meihong的分, 一定还一定还.
pegasus (1999-08-08 1:09:00)
OK,
rfc 959中提到了下列标准命令:FTP COMMANDS
1. ACCESS CONTROL COMMANDS
USER NAME (USER)
PASSWORD (PASS)
ACCOUNT (ACCT)
CHANGE WORKING DIRECTORY (CWD)
CHANGE TO PARENT DIRECTORY (CDUP)
STRUCTURE MOUNT (SMNT)
REINITIALIZE (REIN)
LOGOUT (QUIT)
2. TRANSFER PARAMETER COMMANDS
DATA PORT (PORT)
PASSIVE (PASV)
REPRESENTATION TYPE (TYPE)
FILE STRUCTURE (STRU)
TRANSFER MODE (MODE)
3. FTP SERVICE COMMANDS
RETRIEVE (RETR)
STORE (STOR)
STORE UNIQUE (STOU)
APPEND (with create) (APPE)
ALLOCATE (ALLO)
RESTART (REST)
RENAME FROM (RNFR)
RENAME TO (RNTO)
ABORT (ABOR)
DELETE (DELE)
REMOVE DIRECTORY (RMD)
MAKE DIRECTORY (MKD)
PRINT WORKING DIRECTORY (PWD)
LIST (LIST)
NAME LIST (NLST)
SITE PARAMETERS (SITE)
SYSTEM (SYST)
STATUS (STAT)
HELP (HELP)
NOOP (NOOP)
如果需要详细的命令格式的解释,那么我就寄给您rfc959.txt?
Another_eYes (1999-08-08 1:12:00)
寄吧寄吧
pegasus (1999-08-08 1:27:00)
OK, 寄出了
Another_eYes (1999-08-08 1:30:00)
谢谢
sherman (1999-08-08 21:44:00)
我也想要一份了,shermanxie@126.com
邹光先 (1999-08-08 21:57:00)
呵呵,我也要!
zguangxian@263.net
pegasus (1999-08-09 0:55:00)
OK, sent out.
lj2000 (1999-08-10 0:24:00)
呵呵,我也要!
ljfree@21cn.com
scriptman (1999-08-10 13:07:00)
建议你们到上海交通大学自动化研究室的竹叶类面看看
或者在ftp://ftp.shtdu.edu.cn/welcome/delphi里面看看
有绝大多数的RFC
pegasus (1999-08-10 14:57:00)
OK, sent out.
等大富翁B计划完工之后,大家是不是考虑一下进行RFC的汉化工作,
挑选一些主要的翻译一下,加速普及,如何?
cytown (1999-08-23 15:12:00)
什么B计划?说来听听!
DNChen (1999-08-23 19:35:00)
支持这个决定,不过我只能呐喊,不能动手的,*^_^*
geshengping (1999-08-23 20:05:00)
pegaous: 提议很不错,希望到时能帮上忙。
cytown: B计划在大富翁论坛首页有链接,自己去看看吧,嘻嘻。
Liu JZX (1999-09-16 8:48:00)
to me
ljgljg@sohu.com
郑宇轩 (1999-09-16 9:14:00)
也算我一份。
To:xzhengy@263.net
snowtree (1999-10-04 1:46:00)
也算我一份。
To: snowtreehouse@990.net
KCZ (1999-10-08 18:37:00)
给偶一份!
hntangwei (1999-10-08 19:00:00)
有这种好东西,给我一个吗?
hntangwei@netease.com
yiezh (1999-12-09 14:04:00)
好东西,给我一份吗?
阿蒙 (1999-12-09 19:36:00)
不管沈默给我也来一份
还有 netants 是先在本地建立一个*。exe 文件,他是最后下在文件的合并文件
天外客 (1999-12-09 21:39:00)
pegasus,也给我几一分RFC959.txt把
Thank U
天外客 (1999-12-09 21:41:00)
pegasus,也给我几一分RFC959.txt把
Thank U
我的Email: LinLS@km169.net
Energy (1999-12-09 23:33:00)
应该是 http 1.1 , 1.0不支持的。
阿蒙 (1999-12-10 19:42:00)
以前有过这个讨论,你可以把以前的大幅文翁离线版看看,都是前辈(都退隐了)
写的
windynet (2000-04-02 19:30:00)
我也要!
meihong (2000-05-20 13:46:00)
接受答案了.
daozhao (2000-05-20 21:59:00)
有这种好东西,给我一个吗?
daozhao@netease.com
pegasus的回答最终被接受。