?? 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 + -