《基于VS的FTP文件傳輸設(shè)計與實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《基于VS的FTP文件傳輸設(shè)計與實現(xiàn)(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于VS的FTP文件傳輸設(shè)計與實現(xiàn)
摘要:海量數(shù)據(jù)時代,文件傳輸需要解決準確率與傳輸速度問題,通常的網(wǎng)絡(luò)下載速度有些不能滿足用戶需求,為適應用戶海量下載需求,為此開發(fā)FTP文件傳輸系統(tǒng),該系統(tǒng)基于VisualStudio環(huán)境開發(fā),功能具有訪問ftp、文件上傳、文件下載、刪除、顯示目錄等功能,給用戶提供方便快捷的文件傳輸下載。
關(guān)鍵詞:海量數(shù)據(jù);FTP;文件傳輸
中圖分類號:TP311文獻標識碼:A
文章編號:1009-3044〔2021〕32-0232-03
Abstract:Intheeraofmassivedata,filetransmissionneedstosolvethe
2、problemsofaccuracyandtransmissionspeed.Theusualnetworkdownloadspeedcannotmeettheneedsofusers.Inordertomeettheneedsofusersformassivedownloading,F(xiàn)TPfiletransmissionsystemisdeveloped.ThesystemisdevelopedbasedonVisualStudioenvironment,withthefunctionsofaccessingFTP,uploadingfiles,downloadingfiles,deleti
3、ng,displayingdirectoriesandotherfunctions,soastoprovideuserswiththeservicesFastfiletransferanddownload.
Keywords:massivedata;FTP;filetransfer
1創(chuàng)立工程
使用網(wǎng)絡(luò)編程方式實現(xiàn)一個典型的FTP系統(tǒng)實現(xiàn)文件傳輸?shù)裙δ堋?
翻開VisualStudio,創(chuàng)立一個基于對話框的MFC應用程序,工程名稱為“hailianFTP〞,創(chuàng)立向?qū)Ц呒壒δ苤凶⒁膺x擇windows套接字,然后完成即可。
2設(shè)計界面
設(shè)計hailianFTP的主對話框。添加一個List
4、Box控件顯示FTP的文件和目錄內(nèi)容,并為其關(guān)聯(lián)CListBox類型的成員變量m_lbkuang;添加一個EditBox控件輸入FTP效勞器地址,并為其關(guān)聯(lián)CString類型的成員變量m_sfuwuqi;添加一個EditBox控件輸入FTP登錄用戶名,并為其關(guān)聯(lián)CString類型的成員變量m_syonghu;添加一個EditBox控件輸入FTP登錄口令,并為其關(guān)聯(lián)CString類型的成員變量m_smima;添加一個EditBox控件輸入FTP目錄,并為其關(guān)聯(lián)CString類型的成員變量m_smulu;添加四個靜態(tài)文本,分別顯示效勞器地址、用戶名、密碼、目錄,然后添加五個按鈕分別表示“翻開ftp
5、〞“顯示ftp內(nèi)容〞“上傳數(shù)據(jù)〞“下載數(shù)據(jù)〞和“刪除垃圾〞。
3頭文件設(shè)計
翻開hailianFTPDlg.h,添加頭文件包含#include,添加Daoruwenjian函數(shù)聲明和添加成員,代碼如下:
voidDaoruwenjian〔〕;CFtpConnection*m_wenjianlianjie;CInternetSessionm_isSession;
4實現(xiàn)文件設(shè)計
為五個按鈕設(shè)計消息響應函數(shù),實現(xiàn)Daoruwenjian函數(shù),實現(xiàn)文件局部代碼如下:
BOOLChailianFTPDlg::OnInitDialog〔〕
m_sfuwuqi=_T〔"127.0.0
6、.1"〕;
m_smulu=_T〔""〕;
m_syonghu=_T〔"anonymous"〕;
m_smima=_T〔"abcd"〕;
m_wenjianlianjie=NULL;
UpdateData〔FALSE〕;
returnTRUE;}
{UpdateData〔TRUE〕;
if〔!m_wenjianlianjie〕
{if〔m_sfuwuqi!=_T〔""〕〕
{m_wenjianlianjie=m_isSession.GetFtpConnection〔m_sfuwuqi,
m_syonghu,m_smima〕;
if〔m_wenjianlianjie〕
7、
{m_wenjianlianjie->GetCurrentDirectory〔m_smulu〕;
m_lianjieanniu.SetWindowText〔_T〔"&不再顯示內(nèi)容"〕〕;
Daoruwenjian〔〕;
UpdateData〔FALSE〕;}}}
else{m_wenjianlianjie->Close〔〕;
deletem_wenjianlianjie;
m_wenjianlianjie=NULL;
m_lianjieanniu.SetWindowText〔_T〔"&ConnectFTPServer"〕〕;
m_smulu=_T〔""〕;
m_lbkua
8、ng.ResetContent〔〕;
UpdateData〔FALSE〕;}}
{UpdateData〔TRUE〕;
if〔xwenjian!=""〕
{if〔xwenjian.Right〔5〕==_T〔""〕〕
MessageBox〔_T〔"Unabletodownloaddirectory"〕〕;
else{CFileDialogwenjian〔FALSE,NULL,〔LPCTSTR〕xwenjian〕;
if〔wenjian.DoModal〔〕==IDOK〕
{if〔!m_wenjianlianjie->GetFile〔〔LPCTSTR〕xwenjian,
〔LPC
9、TSTR〕wenjian.GetFileName〔〕〕〕;
MessageBox〔_T〔"提示錯誤報警"〕〕;}}}}
{UpdateData〔TRUE〕;
if〔m_smulu!=""〕
m_wenjianlianjie->GetCurrentDirectory〔m_smulu〕;
Daoruwenjian〔〕;
UpdateData〔FALSE〕;}}
{UpdateData〔TRUE〕;
if〔xwenjian!=""〕
{if〔xwenjian.Right〔5〕==_T〔""〕〕
{CStringlinshi;
m_wenjianlianjie->Ge
10、tCurrentDirectory〔m_smulu〕;
if〔m_smulu.Right〔1〕!=_T〔"/"〕〕
linshi=xwenjian.Left〔xwenjian.GetLength〔〕-5〕;
linshi.TrimRight〔〕;
m_smulu+=linshi;
UpdateData〔FALSE〕;
Shezhimulu〔〕;}
else{CFileDialogwenjian〔FALSE,NULL,〔LPCTSTR〕xwenjian〕;
if〔wenjian.DoModal〔〕==IDOK〕
{if〔!m_wenjianlianjie->GetFile〔
11、〔LPCTSTR〕xwenjian,
〔LPCTSTR〕wenjian.GetFileName〔〕〕〕
MessageBox〔_T〔"關(guān)于文件錯誤提示"〕〕;}}}}
{m_lbkuang.ResetContent〔〕;
CFtpFileFindchazhao〔m_wenjianlianjie〕;
CStringxwenjianming;
BOOLgengduowenjian;
gengduowenjian=chazhao.FindFile〔NULL〕;
while〔gengduowenjian〕
{gengduowenjian=chazhao.FindNextFile〔
12、〕;
xwenjianming=chazhao.GetFileName〔〕;
if〔chazhao.IsDirectory〔〕〕
xwenjianming+=_T〔""〕;
m_lbkuang.AddString〔〔LPCTSTR〕xwenjianming〕;}
chazhao.Close〔〕;}
{UpdateData〔TRUE〕;
CFileDialogopenFile〔TRUE,NULL〕;
if〔openFile.DoModal〔〕==IDOK〕
{if〔m_wenjianlianjie->PutFile〔〔LPCTSTR〕openFile.GetFileName
13、〔〕,
〔LPCTSTR〕〔m_smulu+_T〔"/"〕+〔CString〕openFile.GetFileName〔〕〕〕〕
MessageBox〔_T〔"上傳數(shù)據(jù)完成"〕〕;
else
MessageBox〔_T〔"無法上傳"〕〕;}
Shezhimulu〔〕;
UpdateData〔FALSE〕;}
{UpdateData〔TRUE〕;
m_wenjianlianjie->Remove〔xwenjian〕;
Shezhimulu〔〕;
UpdateData〔FALSE〕;}
5調(diào)試工作
編寫好對應功能后,調(diào)試對應功能,如果發(fā)現(xiàn)成員變量添加錯誤,可以刪除頭文件
14、和源文件對應位置的變量,重新選中控件,右鍵,添加變量。調(diào)試成功如圖1所示。
通過調(diào)試,發(fā)現(xiàn)密碼功能沒有隱藏,為此請注意,為保護
參考文獻:
【1】周超,劉傳琦.基于VC的傳輸文件集成軟件的設(shè)計與實現(xiàn)[J].無線互聯(lián)科技,2021,16〔12〕:57-59.
【2】張甲.基于多級異構(gòu)通道的矩陣型文件傳輸系統(tǒng)設(shè)計和實現(xiàn)[D].西北大學,2021.
【3】譚玲麗.一種基于Linux平臺下的文件傳輸效勞器的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2021,11〔25〕:25-26.
【4】趙娟.簡單文件傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].中國市場,2021〔50〕:242,244.
【5】陳娟.基于局
15、域網(wǎng)的文件傳輸功能設(shè)計與實現(xiàn)[J].計算機光盤軟件與應用,2021,18〔3〕:289,291.
【6】文艾.移動互聯(lián)網(wǎng)下基于RS編碼的文件傳輸軟件設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2021,10〔29〕:6834-6838+6852.
【7】王琦,韓安,賈政,王毓輝.一種高效文件傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].電子世界,2021〔15〕:133-134.
[8]唐軍.異步批量文件網(wǎng)絡(luò)傳輸系統(tǒng)設(shè)計與實現(xiàn)[D].湖南師范大學,2021.
[9]張愷.基于UDP的可靠文件傳輸協(xié)議的設(shè)計與實現(xiàn)[D].西安電子科技大學,2021.
[10]巫黎黎.文件平安傳輸系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學,2021.
[11]宮麗娜.基于TCP協(xié)議的文件傳輸?shù)脑O(shè)計與實現(xiàn)[J].信息系統(tǒng)工程,2021〔12〕:22-23.