- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下http协议 多线程下载实现
linux下http协议 多线程下载实现
该程序只能在http协议下工作,等以后研究其他协议时再补充。??- E ?! K+ Z9 y2 ^5 K2 s* r! a j( I, G. E??J- F( \% M, P. ](网络服务器用的是腾讯公司的linuxqq 希望他们能原谅我……)3 b, W0 ?* k V% ]9 p- \编程思路:??2 x s; ?8 b! }: z??q! r- V1、分析http协议 数据包。??6 I, h- O. P2 N R9 R- G1 Z以下是一个请求报文与相应的回复报文的例子??, j+ ?) l0 ]/ i; y9 P, S, ~ Y??E- h. j o1 [2 e. ~GET /linuxqq/linuxqq-v1.0.2-beta1.i386.rpm HTTP/1.1??, ? q8 Z2 r; l( v9 RAccept: */*??8 L0 G: I9 y, g n( TAccept-Language: en-us??* R9 v7 q1 m: {- p9 FUser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)??$ z??K! ~5 X F??A: h* w) i8 jHost: :80????H8 }; p- G) e) R/ w8 {) {9 HConnection: Keep-Alive??# t2 k3 X/ ? c- c5 C. Z. F0 J2 X* _; P/ `) {9 `HTTP/1.1 206 Partial Content??: U* c4 w: u! w v! c, HContent-Length: 1009349??) l4 q: j4 {/ E??KContent-Range: bytes 0-1009348/5046743??; q4 C5 V3 O$ c G% U/ @Server: qqdlsrv(1.84 for linux)??. q r3 X* O d+ U* J7 i??XConnection: Keep-alive??3 F; b??h6 S/ f, x2 w3 |Content-Disposition: attachment; filename=linuxqq-v1.0.2-beta1.i386.rpm??% ?. C9 X# ?9 k. U0 y* i8 Z$ cAccept-Ranges: bytes??# o t0 p3 q4 K1 c! Y6 jContent-Type: application/octet-stream??9 K, y k E) f6 H$ z$ {7 h0 Q; r. K: b9 m$ e1 ?$ H$ D, G; k; U2、取得文件大小,然后进行对文件的分块。??) T1 {* ^ r1 I3 Z2 @3、对文件分块下载??, S% d: m1 J7 M, s. U4、合并文件,并改名。 ! y) [3 d% L+ D5 B A( w) L9 P8 p, w??q$ v+ A, [; w6 B总结:这个分块再合并总感觉太过于啰嗦。??6 A0 P3 L+ W E. r, v5 u是否还有另外一种方法,??7 ^0 \% p% p t r1 Y# R; v( `如迅雷,在一开始就取得文件大小就在硬盘分配空间,??6 D??M0 ]% E+ C C5 m) c% E然后分块下载直接写入到文件的不同块???2 A i2 g6 ?9 G0 i是否可以用文件指针锁住不同的区域并写入? y5 s8 n5 L, a% z8 b??F9 Y: |; | t# q: x; O8 ~9 M# ^* A??` [9 u% P7 x: c, L! V3 v/*??# w: B- m* p2 I# k6 S+ }3 ^+ r* down.c??2 d2 W8 H4 G3 C9 w*??! g$ c, D0 E, w6 f, j7 P! w*??Created on: Mar 27, 2009??3 S( x- L% j5 l9 o- u*? ?? ?Author: root??: i @! ?. J# B% h! J C* this program is to download file in http protocol with multthreading??( v d) e! q; ]: y# r! |8 K5 W??i*/??0 [. k. i f- E. p0 o0 r9 U$ L6 Z#ifndef STRUCT_H_??% h ^9 v2 q2 `
文档评论(0)