您的位置:程序门 -> vb -> 网络编程



请问有没有人知到如何只下载文件的一半?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问有没有人知到如何只下载文件的一半?
发表于:2008-01-23 11:16:07 楼主
请问有没有人知到如何只下载文件的一半?
我听说只要修改一下以下代码就行,谁会啊?
private   sub   winsock1_connect()

dim   strcommand   as   string
       
             
                strcommand   =   "get   "   +   lvproc.listitems.item(1).listsubitems(3).text   +   "   http/1.0"   +   vbcrlf   '下载地址
  strcommand   =   strcommand   +   "accept:   *.*,   */*"   +   vbcrlf
strcommand   =   strcommand   +   "accept:   text/html"   +   vbcrlf

                                          strcommand   =   strcommand   +   "range:   bytes="   &   "1"   &   "-"   &   vbcrlf
              strcommand   =   strcommand   +   "connection:   close"   &   vbcrlf
                strcommand   =   strcommand   &   vbcrlf
                winsock1.senddata   strcommand
发表于:2008-01-23 15:02:431楼 得分:0
没试过。。。。。。。。。。。。。
发表于:2008-01-23 15:03:092楼 得分:0
你听谁说修改你上面代码可以做到的话,你就问谁吧。。。。。。
发表于:2008-01-23 17:07:003楼 得分:0
?
发表于:2008-01-23 23:15:144楼 得分:0
看看http协议不就一目了然了........晕.

range就是指定下载的范围.

你这代码里是"1-",也就是从第一个字节到文件尾.

如果你要下载一半,那就先发送get请求,range设置为1-1,这样只下载了一个字节,可以很快返回.

然后在返回的内容头部可以得到文件大小.

得到大小后再自己处理成"一半",具体就是个加减法~~~

然后重新生成http请求头发过去就可以了.
发表于:2008-01-25 12:44:005楼 得分:0
有具体一点的说明吗?如我已知文见大小为filesize
xia下面如何重写?
private       sub       winsock1_connect()  

dim       strcommand       as       string  
               
                           
                                strcommand       =       "get       "       +       lvproc.listitems.item(1).listsubitems(3).text       +       "       http/1.0"       +       vbcrlf       '下载地址  
    strcommand       =       strcommand       +       "accept:       *.*,       */*"       +       vbcrlf  
strcommand       =       strcommand       +       "accept:       text/html"       +       vbcrlf  

                                                                                    strcommand       =       strcommand       +       "range:       bytes="       &       "1"       &       "-"       &       vbcrlf  
                            strcommand       =       strcommand       +       "connection:       close"       &       vbcrlf  
                                strcommand       =       strcommand       &       vbcrlf  
                                winsock1.senddata       strcommand
end   if
发表于:2008-01-25 14:31:256楼 得分:0
用个下载软件,比如   flashget   看看它的连接日志就知道了。
发表于:2008-01-25 21:24:137楼 得分:0
.........无语.

我觉得我已经写得够明白了.......

vbscript code
strcommand = strcommand + "range: bytes=" & "500-1000" & vbcrlf
发表于:2008-01-28 09:49:328楼 得分:0
呵呵,大家都见到本人等级是菜鸟,请原谅。经过试用高手myjian说的方法可行。谢谢myjian.
发表于:2008-02-04 20:38:489楼 得分:0
小号路过...


快速检索

最新资讯
热门点击