加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

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

发布时间:2023-03-24 13:00:03 所属栏目:语言 来源:
导读:代码如下:/* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)* Reflector 了一下 System.Net.WebClient ,改写或增加了若干:* DownLoad、Upload 相关方法!* DownLoad 相关改动较

代码如下:

/* .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)

(编辑:银川站长网)

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