• 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());
          }
      }

  • 相关阅读:
    C# 单元测试
    支持库:DateTime扩展
    根据枚举名称创建枚举
    支持库:String扩展
    数组的几道面试题转
    java推荐书籍及下载
    Python天天美味(总) 转
    python 实现文件的递归拷贝转
    关于python文件操作转
    JDK源码分析收藏地址
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2458393.html
Copyright © 2020-2023  润新知