用 socket 编写的多线程下载工具

huwei001982 2014-08-11 03:02:33
加精
编写本工具主要是基于两点考虑:
1. 想要一个简单点的下载工具, 曾经用了一段时间的迷你迅雷, 但是现在好像停止开发了, 后来用 chrome 自带的下载工具, 但是这个破工具下载大文件或者网络不好的时候经常出错, 下载的文件不完整.
2. 检验一下我写的 TcpServer / TcpClient 库是否正常 (主要是这个原因)

没有使用 .net 自带的 WebRequest 或 WebClient , 那个局限性太大, 我是从底层 socket 写起, Connect 连接服务器 \ Send 按照http协议发送命令 / Receive 接收服务器返回的数据, 一步步做的. 采用的多线程, 下载速度还不错哦.

写完之后对 http 协议也有更深的了解, 个人觉得每个人都可以试试.

编写时间大概在1周左右, 主要的参考文档是 http 协议中文版, 也是在csdn上下载的.
http://download.csdn.net/tag/HTTP%E5%8D%8F%E8%AE%AE%EF%BC%88RFC2616%EF%BC%89%E4%B8%AD%E6%96%87%E7%89%88.pdf

截图




程序下载地址
http://download.csdn.net/detail/huwei001982/7739997
欢迎提出意见.
...全文
5900 100 打赏 收藏 转发到动态 举报
写回复
用AI写文章
100 条回复
切换为时间正序
请发表友善的回复…
发表回复
lashengcrh 2016-06-03
  • 打赏
  • 举报
回复
没有源码怎么分享,交流、学习呢? 楼主是不是在炫耀自己??
南天空 2016-05-30
  • 打赏
  • 举报
回复
下载下来研究一下,用过一些socket通讯的东西,觉得还有些不是很明了,学习学习。
tanta 2016-05-30
  • 打赏
  • 举报
回复
帮你顶,帮你顶。
john_QQ:2335298917 2016-05-29
  • 打赏
  • 举报
回复
感谢分享,学习中
lshfong 2016-05-29
  • 打赏
  • 举报
回复
不错,好厉害
封魔丿魂 2016-05-29
  • 打赏
  • 举报
回复
请问你这个是ftp下载吗
木头熊 2015-12-14
  • 打赏
  • 举报
回复
感谢楼主的分享。。。。
shenruifir01 2015-07-29
  • 打赏
  • 举报
回复

感觉不会再爱了,糟糕的用户体验!!
why123qaz 2015-04-27
  • 打赏
  • 举报
回复
留言,学习。
john_QQ:2335298917 2015-04-27
  • 打赏
  • 举报
回复
不错,感谢分享
mjp1234airen4385 2014-09-11
  • 打赏
  • 举报
回复
mark。 楼主主要是想对http协议更加了解,没想着和谁比。 毕竟是一个人的作品,也不是产品。 对么?
nongfuxu 2014-09-11
  • 打赏
  • 举报
回复
引用
打个比方吧,迅雷就好像是如来佛掌,有着掌管天地的一套机制。而你的程序就好像一个小石猴,不过是翻了几个筋斗云。
什么时候偶也能像这样的“翻几个筋斗云”就好了。
孙员外 2014-09-01
  • 打赏
  • 举报
回复
楼主没有提供源码比较可惜,不过还是比那些就知道胡咧咧装象的家伙强多了
Sorichu 2014-08-21
  • 打赏
  • 举报
回复
lght 2014-08-20
  • 打赏
  • 举报
回复
http多线程下载是需要服务器支持的
莫_问 2014-08-20
  • 打赏
  • 举报
回复
引用 56 楼 sp1234 的回复:
[quote=引用 40 楼 wjfwd2010 的回复:] 迅雷是P2P的吧?我看下载的时候他么的还在上传,你说的从互联网上找到几十个甚至上百个相同的资源,其实大部分来自他的用户吧??? 当然我只是推测,我说的对不?
我没有说P2P,说的是更为简单的特性。[/quote] sp1234说的很中肯,迅雷不是一个简单的多线程,简单的bt下载工具,迅雷的实现相当复杂 ,这么复杂就是为了尽可能地提高下载速度 。
^8^ 2014-08-19
  • 打赏
  • 举报
回复
分享..................
huwei001982 2014-08-19
  • 打赏
  • 举报
回复
引用 78 楼 qq705540946 的回复:
源码分享个?
写的烂, 不献丑了. 想看的话反编译就行了.
huwei001982 2014-08-19
  • 打赏
  • 举报
回复
引用 77 楼 a899130 的回复:
楼主代码里用了很多GOTO。这个,好么?
哪有 goto?
成都-狗蛋儿 2014-08-19
  • 打赏
  • 举报
回复
加载更多回复(67)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧