加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、容器安全、数据加密、云日志、云数据迁移!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C#成功实现支持断点续传多线程下载客户端工具类

发布时间:2023-06-08 06:00:20 所属栏目:语言 来源:转载
导读:   代码如下:



  /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)



  * Reflector 了一下 System.Net.WebClient ,改写或增加了若
  代码如下:
 
  /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
 
  * Reflector 了一下 System.Net.WebClient ,改写或增加了若干:
 
  * DownLoad、Upload 相关方法!
 
  * DownLoad 相关改动较大!
 
  * 增加了 DataReceive、ExceptionOccurrs 事件!
 
  * 了解服务器端与客户端交互的 HTTP 协议参阅:
 
  * 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! JSP/Servlet 实现!
 
  * http://blog.csdn.net/playyuer/archive/2004/08/02/58430.aspx
 
  * 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
 
  * http://blog.csdn.net/playyuer/archive/2004/08/02/58281.aspx
 
  */
 
  //2005-03-14 修订:
 
  /* .Net/C#: 实现支持断点续传多线程下载的工具类
 
  * Reflector 了一下 System.Net.WebClient ,改写或增加了若干:
 
  * DownLoad、Upload 相关方法!
 
  * 增加了 DataReceive、ExceptionOccurrs 事件
 
  */
 
  namespace Microshaoft.Utils
 
  {
 
  using System;
 
  using System.IO;
 
  using System.Net;
 
  using System.Text;
 
  using System.Security;
 
  using System.Threading;
 
  using System.Collections.Specialized;
 
  /// <summary>
 
  /// 记录下载的字节位置
 
  /// </summary>
 
  public class DownLoadState
 
  {
 
  private string _FileName;
 
  private string _AttachmentName;
 
  private int _Position;
 
  private string _RequestURL;
 
  private string _ResponseURL;
 
  private int _Length;
 
  private byte[] _Data;
 
  public string FileName
 
  {
 
  get
 
  {
 
  return _FileName;
 
  }
 
  }
 
  public int Position
 
  {
 
  get
 
  {
 
  return _Position;
 
  }
 
  }
 
  public int Length
 
  {
 
  get
 
  {
 
  return _Length;
 
  }
 
  }
 
  public string AttachmentName
 
  {
 
  get
 
  {
 
  return _AttachmentName;
 
  }
 
  }
 
  public string RequestURL
 
  {
 
  get
 
  {
 
  return _RequestURL;
 
  }
 
  }
 
  public string ResponseURL
 
  {
 
  get
 
  {
 
  return _ResponseURL;
 
  }
 
  }
 
  public byte[] Data
 
  {
 
  get
 
  {
 
  return _Data;
 
  }
 
  }
 
  internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length, byte[] Data)
 
  {
 
  this._FileName = FileName;
 
  this._RequestURL = RequestURL;
 
  this._ResponseURL = ResponseURL;
 
  this._AttachmentName = AttachmentName;
 
  this._Position = Position;
 
  this._Data = Data;
 
  this._Length = Length;
 
  }
 
  internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length, ThreadCallbackHandler tch)
 
  {
 
  this._RequestURL = RequestURL;
 
  this._ResponseURL = ResponseURL;
 
  this._FileName = FileName;
 
  this._AttachmentName = AttachmentName;
 
  this._Position = Position;
 
  this._Length = Length;
 
  this._ThreadCallback = tch;
 
  }
 
  internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length)
 
  {
 

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章