使用http协议和winsockapi实现webzip文件下载论文.docVIP

使用http协议和winsockapi实现webzip文件下载论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用http协议和winsockapi实现webzip文件下载论文.doc

  使用http协议和winsockapi实现webzip文件下载论文 本方法主要涉及以下四方面知识:html语言、http协议、l中〈a〉标记的基本语法为:〈a href=″...″ name=″...″ target=″...″〉。其中参数href的值就是欲获取的url值。 2.。 在http协议中常用的请求方法有两种:get和post。本实现使用get方法。最简化的get请求包如下: get /index.htm http/1.1 “/index.htm”表示客户端欲的文件路径;“http/1.1”表示协议版本。 程序生成get请求包,在成功连接对应 http/1.1”,而不是“get /index.htm http/1.1”。 具体程序和类(程序使用delphi3.0编制): 1.初始化1.formcreate(sender: tobject); var ultithread:=true; //置″支持多线程″为″真″ akeessagebox(′网络系统未准备′,′信息′,mb_ok); essagebox(′未提供网络接口′,′信息′,mb_ok); essagebox(′网络版本不被支持′,′信息′,mb_ok); end; end; 2.文件线程。 tdoinate:=true; inherited create(false); end; procedure tdoysocket:tsocket; myclient:tsockaddr; recvbuf:array 0..332 of char; mycmdstr:string; ptemp:pchar; myhandle,index_ch,reccount,i:integer; begin //创建本地socket mysocket:=socket(af_i,sock_stream,.freelysocket=socket_error) then begin application.messagebox(′初始化失败!′,′信息′,mb_ok); exit; end; //生成连接主机的结构 myclient.sin_family:=af_i; myclient.sin_port:=htons(connectedport); // connectedport:全局变量,记录连接端口号 strpcopy(recvbuf,getserverip(fileurl)); // getserverip(fileurl):返回服务器的ip myclient.sin_addr.s_addr:=i_addr(recvbuf); //连接服务器 if (connect(mysocket,myclient,sizeof(myclient))〈〉0) then begin closesocket(mysocket); exit; end; //发请求 if (q_useproxy=0) then mycmdstr:=′get ′+extracturlpath(fileurl)+′ http/1.1′ //extracturlpath(fileurl)返回相对url else mycmdstr:=′get ′+fileurl+′ http/1.1′;//使用代理写全url strpcopy(recvbuf,mycmdstr); i:=length(mycmdstr); recvbufi:=#13; inc(i); recvbufi:=#10; inc(i); recvbufi:=#13; inc(i); recvbufi:=#10; inc(i); recvbufi:=#0; send(mysocket,recvbuf,i,0); //发送请求读返回数据 reccount:=recv(mysocket,recvbuf,sizeof(recvbuf)-1,0); //判断是否成功 i:=0; ysocket); exit; end; //得到数据起始位置 ptemp:=strpos(recvbuf,#13+#10+#13+#10)+4; index_ch:=ptemp-recvbuf; //建立目录 try forcedirectories(extractfilepath(getfillocalpath(fileurl))); except end; //创建文件 deletefile(getfillocalpath(fileurl)); myhandle:=filecreate(getfillocalpath(fileurl)); //如果未接收完则继

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档