继木马编程 的上两篇现在我们开始讨论断点续传与多线程文件传输的实现其实这两
项功能是下载软件所
必不可少的功能了现在我们把它加到自己的木马中来感受感受提到多线程下载首先向网
络蚂蚁的作者
洪以容前辈致敬正是由于网络蚂蚁而使得多线程下载被关注并流行起来 在这本篇文章中
我们将简单的实现
支持断点续传和多线程传输的程序为了更清晰的说明问题我们将断点续传与多线程传输
分别用两个程序来实现
多线程传输实现
实现原理
将源文件按长度为分为 块文件然后开辟 个线程每个线程传输一块最后合并所有线线
程文件比如
一个文件 我们按长度可以分 个线程传输第一线程从 第二线程从
最后合并 个线程文件
实现流程
客户端向服务端请求文件信息名称长度
客户端跟据文件长度开辟 个线程连接服务端
服务端开辟新的线程与客户端通信并传输文件
客户端将每线程数据保存到一个文件
合并所有线程文件
编码实现
大体说来就是按以上步骤进行详细的实现和一些要点我们跟据以上流程在编码中实现
结构定义
在通信过程中需要传递的信息包括文件名称文件长度文件偏移操作指令等信息为了方便
操作我们定义如下结构-
代码
!"#$%%文件名称
&'(&)*'$%%文件长度
&'+$%%操作指令
&',$%%线程开始位置
-.+/012,&$
3(*0(.$
请求文件信息
客户端代码如下-
代码
(*0(.4$
!! 564&724$
4+8$%%得到文件信息
评论3