zoukankan      html  css  js  c++  java
  • Windows Mobile上实现断点续传。

    最近看到有人在网上讲论WM上的下载工具,就提供个断点传的思路,供大家交流。

    断点续传就是在上一次下载 时断开的位置开始继续下载。在HTTP协议中,可以在请求报文头中加入Range段,来表示客户机希望从何处继续下载。

    代码如下,在WM6环境下测试通过。

    static void Main(string[] args)
      {

             string StrFileName="c://aa.zip"; //根据实际情况设置
          string StrUrl="http://www.xxxx.cn/xxxxx.zip"; //根据实际情况设置

         //打开上次下载的文件或新建文件
         long lStartPos =0;
            System.IO.FileStream fs;
            if (System.IO.File.Exists(StrFileName))
            {
                  fs= System.IO.File.OpenWrite(StrFileName);
                  lStartPos=fs.Length;
                  fs.Seek(lStartPos,System.IO.SeekOrigin.Current); //移动文件流中的当前指针
          }
            else
            {
                  fs = new System.IO.FileStream(StrFileName,System.IO.FileMode.Create);
                  lStartPos =0;
           }

            //打开网络连接
         try
           {
                  System.Net.HttpWebRequest request =(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl);
                  if ( lStartPos>0)
                  request.AddRange((int)lStartPos); //设置Range值

             //向服务器请求,获得服务器回应数据流
             System.IO.Stream ns= request.GetResponse().GetResponseStream();

                 byte[] nbytes = new byte[512];
                 int nReadSize=0;
                 nReadSize=ns.Read(nbytes,0,512);
                 while( nReadSize >0)
                {
                      fs.Write(nbytes,0,nReadSize);
                      nReadSize=ns.Read(nbytes,0,512);
                }
                fs.Close();
                ns.Close();
                Console.WriteLine("下载完成");
           }
           catch(Exception ex)
          {
                 fs.Close();
                 Console.WriteLine("下载过程中出现错误:"+ex.ToString());
          }
      }

  • 相关阅读:
    查看mysql版本的四种方法及常用命令
    newInstance和new的区别(good)
    Citrix 服务器虚拟化之六 Xenserver虚拟机创建与快照
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 排序
    Java实现 蓝桥杯 算法训练 2的次幂表示
    Java实现 蓝桥杯 算法训练 2的次幂表示
    Java实现 蓝桥杯 算法训练 前缀表达式
    Java实现 蓝桥杯 算法训练 前缀表达式
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458393.html
Copyright © 2011-2022 走看看