📄 ftp.htm
字号:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<p align="center"><b>FTP下载的实现(VC版)<br>
</b><br><br>
作者:<a href="mailto:duanoldfive@sohu.com">段会锋</a></p>
<p><br><br>
大家好,好久没做什么东西了,前些日子偶然看到本论坛的一个FTP多线程断点续传的源代码,拿来研究了一下,相信有很多朋友也对此感兴趣。今天和大家一起讨论一下。 <br><br>
这个软件最大的遗憾就是是BCB的东西,而好多朋友用的是VC,我花了两天时间才把他完全弄成VC的版本,然后心血来潮,想自己编一个。于是规划了一下,先做界面,下载部分吗?打算用完成端口。这样在Windows下比较有效率。 <br><br>
比较遗憾的是,我界面做了一大半的时候,时间实在紧迫,没有能够把原来的规划完成,只能草草收尾,现在软件是两个线程,一个是UI主线程,另一个是Work线程,用来下载东西,做的不够完善,但FTP下载的功能已经实现了,只是时间紧没有往文件里写,因为写文件难度相对简单,但加上断点续传比较费时间,所以偷懒了<^+^>,我已经标明了应该写文件的地方,只要把我的buffer写进去就好了,希望对您有所帮助,抛砖引玉,我已经很荣幸了!同时感谢 吴康彬 朋友,你想多了解一下FTP下载原理,可以去阅读他的文章,在本站在线杂志第39期,标题<<ftp协议实现多线程断点续传>>,再次表示感谢 <br><br>
目前软件支持文件列表,传输,限速功能。如果谁有时间能做成完成端口多线程,并完善界面,给大家一个完善的程序,那不胜感激。我愿意提供技术帮助 <br><br>
<br>
下面是软件运行的界面:<br>
<br>
<img border="0" src="FTPTranser.jpg" width="768" height="558"><br>
我给他起了个名字叫FTPTranser<br>
<br>
<br>
FTP连接参数暂时写在了代码里面:
<pre>
//点击下载连接那个菜单
void CMainFrame::On32771()
{
if(client)
delete client;
client = new CFTPClient(this);
//连接参数暂时放这里,应该用登陆对话框
if(!client->Login("192.168.0.46",21,"dhf","mypassword"))
{
AddMsg("登陆服务器失败\n");
return;
}
client->List("");
}
</pre>
限速在这里<br>
<pre>
CFTPClient::CFTPClient(CMainFrame * pa)
{
parent = pa;
mSocket = NULL;
dataClient = NULL;
busy = false;
//下面这个参数用来限速,bits/s
speed = 50000; //50k
running = true;
}
</pre>
<br>
运行程序后点击菜单上的 下载->连接 就登陆了,在文件列表中双击一个文件夹进行目录列表,双击一个文件进行下载.<br><br>
欢迎交流!32期有我的联系方式.</p>
</td>
</tr>
</table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -