文档介绍:使用http协议和winsockapi实现webzip文件下载
本方法主要涉及以下四方面知识:html语言、yingyong/070413/″...″ name=″...″ target=″...″〉。其中参数href的值就是欲获取的url值。
。
在http协议中常用的请求方法有两种:get和post。本实现使用get方法。最简化的get请求包如下:
get / http/
“/”表示客户端欲下载的文件路径;“http/”表示协议版本。
程序生成get请求包,在成功连接对应 http/”,而不是“get / http/”。
具体程序和类():
(sender: tobject);
var
ultithread:=true;
//置″支持多线程″为″真″
akeessagebox(′网络系统未准备′,′信息′,mb_ok);
essagebox(′未提供网络接口′,′信息′,mb_ok);
essagebox(′网络版本不被支持′,′信息′,mb_ok);
end;
end;
。
tdoinate:=true;
inherited create(false);
end;
procedure ;
var
mysocket:tsocket; myclient:tsockaddr;
recvbuf:array [0..332] of char; mycmdstr:string;
ptemp:pchar;
myhandle,index_ch,ount,i:integer;
begin //创建本地socket
mysocket:=socket(af_i,sock_stream,0);
if (mysocket=socket_error) then begin
(′初始化失败!′,′信息′,mb_ok);
exit;
end; //生成连接主机的结构
:=af_i;
:=htons(connectedport);
// connectedport:全局变量,记录连接端口号
strpcopy(recvbuf,getserverip(fileurl));
// getserverip(fileurl):返回服务器的ip
:=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