多线程的下载(比如NETANTS)如何实现?要原理!(100分)

  • 主题发起人 主题发起人 meihong
  • 开始时间 开始时间
M

meihong

Unregistered / Unconfirmed
GUEST, unregistred user!
多线程的下载(比如NETANTS)如何实现?要原理!
 
我就喜欢原理,:)实现不会耶!
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里面),生成多个线程序分别负责一个字
节范围,这样就能够多线程下载来提高下载速度。
实现的时候本地哥哥现成的工作情况的日志很重要,不然下载到一半停了之
后就很难重新拼成一个完整的目标文件了
 
呵呵!
原理很简单的哦
把一个文件分成几块
然后发出几个不同请求分别下载每一块的内容。
然后再连起来组成一个好文件。
就和集装运输一样哦!
 
实现的时候本地哥哥现成的工作情况的日志很重要,不然下载到一半停了之
^^^^^^^^^^^^^^^^^^
各个线程, Sorry, 太马虎了
ftp没有HTTP那么好,但是可以指定起始位置,如果服务器支持的话也
能够多线程下载
 
哦.
敬佩pegasus一丝不苟的精神. 不情之请: 能不能给我一份ftp的命令列表? (eYes网盲, 准备
学了) 不好意思, 用了meihong的分, 一定还一定还.
 
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?
 
寄吧寄吧
 
OK, 寄出了
 
我也想要一份了,shermanxie@126.com
 
呵呵,我也要!
zguangxian@263.net
 
OK, sent out.
 
呵呵,我也要!
ljfree@21cn.com
 
建议你们到上海交通大学自动化研究室的竹叶类面看看
或者在ftp://ftp.shtdu.edu.cn/welcome/delphi里面看看
有绝大多数的RFC
 
OK, sent out.
等大富翁B计划完工之后,大家是不是考虑一下进行RFC的汉化工作,
挑选一些主要的翻译一下,加速普及,如何?
 
什么B计划?说来听听! :)
 
支持这个决定,不过我只能呐喊,不能动手的,*^_^*
 
pegaous: 提议很不错,希望到时能帮上忙。
cytown: B计划在大富翁论坛首页有链接,自己去看看吧,嘻嘻。
 
to me
ljgljg@sohu.com
 
也算我一份。
To:xzhengy@263.net
 
后退
顶部