利用Winsock下载文件(支持断点续传)

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
第一步,建立工程,引用Winsock(最好打SP6,否则MS有一个Bug),在此省略

第二步,具体实现代码步骤1:发送请求
说明:
(1)这里简单采用了判断是否已经有同名文件表示是否要断点续传
(2)下载的地址,大小和已下载字节数也只是简单地存在ini文件中,更的做法本文不作讨论
有兴趣的朋友可以联系我

'--------------------------------------------------------------------------------
'  Name:DownloadFile
'  Author:Reker2004/3/20
'  Desc:连接远端主机,发送接收文件请求,等待远端主机响应
'  Params:None
'  History:None
'--------------------------------------------------------------------------------
PrivateSubDownloadFile()
   OnErrorResumeNext
   StartTime=Time()
   WithWinSck
       .RemoteHost=Host'远端主机地址
       .RemotePort=80
       .Connect
       '等待服务器连接相应
       DoWhile.State<>sckConnected
           DoEvents:DoEvents:DoEvents:DoEvents
           '20秒超时
           IfDateDiff("s",StartTime,Time())>20Then
               ShowInfo"连接超时"
               .Close
               ExitSub
           EndIf
       Loop
       '发送下载文件请求
       '此处使用HTTP/1.0
       strCommand="GET"+UpdateURL+"HTTP/1.0"+vbCrLf'下载地址
       strCommand=strCommand+"Accept:*/*"+vbCrLf     '这句可以不要
       strCommand=strCommand+"Accept:text/html"+vbCrLf'这句可以不要
       strCommand=strCommand+vbCrLf
       strCommand=strCommand&"Host:"&Host&vbCrLf
       IfDir(SaveFileName)<>""Then'是否已经存在下载文件
           Dimconfirm
           confirm=MsgBox("已经存在文件,是否断点续传?",vbYesNo+vbQuestion,"提示")
           Ifconfirm=vbYesThen
               DownPosition=""
               IfNotoFileCtrl.ReadKeyFromIni("Update","DownSize",AppPath+"Update.ini",DownPosition)Then1 <script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
文章标签: 服务器 ini
个人分类: 数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭