![東南大學(xué)計(jì)網(wǎng)實(shí)驗(yàn)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/29/742eefc5-5088-4488-8275-f954378e00cb/742eefc5-5088-4488-8275-f954378e00cb1.gif)
![東南大學(xué)計(jì)網(wǎng)實(shí)驗(yàn)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/29/742eefc5-5088-4488-8275-f954378e00cb/742eefc5-5088-4488-8275-f954378e00cb2.gif)
![東南大學(xué)計(jì)網(wǎng)實(shí)驗(yàn)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/29/742eefc5-5088-4488-8275-f954378e00cb/742eefc5-5088-4488-8275-f954378e00cb3.gif)
![東南大學(xué)計(jì)網(wǎng)實(shí)驗(yàn)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/29/742eefc5-5088-4488-8275-f954378e00cb/742eefc5-5088-4488-8275-f954378e00cb4.gif)
![東南大學(xué)計(jì)網(wǎng)實(shí)驗(yàn)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/29/742eefc5-5088-4488-8275-f954378e00cb/742eefc5-5088-4488-8275-f954378e00cb5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上東南大學(xué)自動(dòng)化學(xué)院實(shí) 驗(yàn) 報(bào) 告課程名稱: 信息通信網(wǎng)絡(luò)概論 第 2 次實(shí)驗(yàn)實(shí)驗(yàn)名稱: FTP客戶端通信程序設(shè)計(jì) 院 (系): 自動(dòng)化 專 業(yè): 自動(dòng)化 姓 名: 徐麗娜 學(xué) 號(hào): 實(shí) 驗(yàn) 室: 實(shí)驗(yàn)組別: 同組人員: 實(shí)驗(yàn)時(shí)間: 2013年 12 月 9日評(píng)定成績(jī): 審閱教師: 目 錄一實(shí)驗(yàn)?zāi)康暮鸵?2二實(shí)驗(yàn)原理 2三實(shí)驗(yàn)方案與實(shí)驗(yàn)步驟 2四實(shí)驗(yàn)設(shè)備與器材配置 3五實(shí)驗(yàn)記錄 3六實(shí)驗(yàn)總結(jié):7七思考題或討論題 7一、 實(shí)驗(yàn)?zāi)康暮鸵螅?.使用MFC WinInet函數(shù)編寫(xiě)一個(gè)簡(jiǎn)單的FTP客戶端程序,實(shí)現(xiàn)FTP客戶端軟件的基本功能檢索FTP文件服務(wù)器,上傳和下載。2.
2、理解掌握CInternetSession、 CFtpFileFind類及GetFtpConnection()、FindFile()、 FindNextFile() 、GetFile()、PutFile()函數(shù)的使用,并熟悉FTP的編程的過(guò)程。二、 實(shí)驗(yàn)原理:在使用 MFC 編程時(shí),要連接到 FTP 服務(wù)器是一件非常簡(jiǎn)單的事情,只需要兩個(gè)簡(jiǎn)單的步驟,首 先必須建立一個(gè) CinternetSession 對(duì)象,用類 CinternetSession 創(chuàng)建并初始化一個(gè)或幾個(gè)同時(shí)存在的 Internet 會(huì)話(Session),并描述與代理服務(wù)器的連接(如果有必要的話),如果在程序運(yùn)行期間需要 保持與
3、 Internet 的廉潔,可以創(chuàng)建一個(gè) CinternetSession 對(duì)象作為類 CwinApp 的成員。MFC 中的類 CftpConnection 管理我們與 Internet 服務(wù)器的連接,并直接操作服務(wù)器上的目錄和文 件,F(xiàn)TP 時(shí) MFC 的 WinInet 支持的三個(gè) Internet 功能之一,我們需要先創(chuàng)建一個(gè) CinternetSession 實(shí)例 和一個(gè) CftpConnection 對(duì)象就可以實(shí)現(xiàn)和一個(gè) FTP 服務(wù)器通信,我們不需要直接創(chuàng)建 CftpConnection 對(duì)象,而是通過(guò)調(diào)用 CinternetSession:GetFtpConnection 來(lái)完成
4、這項(xiàng)工作。他創(chuàng)建 CFtpConnection 對(duì) 象并返回一個(gè)指向該對(duì)象的指針。 在 FTP 連接的程序中,主要適用下列 7 個(gè)函數(shù): CInternetSession 對(duì)象 在創(chuàng)建 CInternetSession 對(duì)象時(shí)調(diào)用這個(gè)成員函數(shù)。CInternetSession 是應(yīng)用程序第一個(gè)要 調(diào)用的 Internet 函數(shù),它將初始化內(nèi)部數(shù)據(jù)結(jié)構(gòu),以備將來(lái)在應(yīng)用程序中調(diào)用。 GetFtpConnection()函數(shù)。 調(diào) 用 這 個(gè) 函 數(shù) 建 立 FTP 連 接 , 并 獲 得 一 個(gè) 指 向 CFtpConnection 對(duì) 象 的 指 針 , GetFtpConnection 連接到
5、一個(gè) FTP 服務(wù)器,創(chuàng)建并返回指向 CFtpConnection 對(duì)象的指針,它不在服務(wù) 器上進(jìn)行任何操作。如果打算讀寫(xiě)文件,必須進(jìn)行分步操作。 GetFile()函數(shù)。 調(diào)用這個(gè)成員函數(shù),可以從 FTP 服務(wù)器區(qū)的文件,并且把文件儲(chǔ)存到本地機(jī)器上。 PutFile()函數(shù)。 調(diào)用這個(gè)成員函數(shù)把文件儲(chǔ)存到 FTP 服務(wù)器上。它能夠處理有關(guān)把文件存放到服務(wù)器上的 所有工作。 FTP 文件查找函數(shù)。 調(diào)用這個(gè)成員函數(shù)構(gòu)造一個(gè) CftpFileFind 對(duì)象。 FindFile()函數(shù)。 調(diào)用這個(gè)函數(shù)查找 FTP 文件,調(diào)用它檢索到第一個(gè) FTP 文件后,可以調(diào)用 FindNextFile() 檢
6、索后面的 FTP 文件。 FindNextFile()函數(shù)。 調(diào)用這個(gè)函數(shù)繼續(xù)查找文件,在調(diào)用任何屬性以前,必須已經(jīng)至少調(diào)用過(guò)一次此函數(shù)。 以上函數(shù)的具體使用方法可以參見(jiàn) MSDN。三、實(shí)驗(yàn)方案與實(shí)驗(yàn)步驟:主要步驟:1.創(chuàng)建一個(gè)internet會(huì)話。 CInternetSession* pSession; pSession=new CInternetSession(AfxGetAppName(),1, PRE_CONFIG_INTERNET_ACCESS);2.建立與FTP服務(wù)器的連接。 CFtpConnection* pConnection; pConnection=pSession->
7、;GetFtpConnection(m_strFtpSite, m_strName,m_strPwd);3、如果連接成功,獲得當(dāng)前登陸的缺省目錄下所有的文件和目錄名稱。 CFtpFileFind* pFileFind; pFileFind=new CFtpFileFind(pConnection); Find()4、下載文件或上傳文件。 OnDownload() OnUpload()5、關(guān)閉連接。四、實(shí)驗(yàn)設(shè)備與器材配置:1實(shí)驗(yàn)室具有基于TCP/IP協(xié)議的Windows網(wǎng)絡(luò)硬軟件環(huán)境;2微機(jī) 1臺(tái)。五、實(shí)驗(yàn)記錄: 1.連接:void CFtpDlg:OnConnect() CString str
8、Connect;m_BtnConnect.GetWindowText(strConnect);pSession=NULL;pConnection=NULL;pFileFind=NULL; UpdateData(TRUE); /獲得當(dāng)前輸入if(m_strFtpSite.IsEmpty()/判斷ftp地址欄是否為空AfxMessageBox("請(qǐng)輸入ftp服務(wù)器地址! ");return;while(m_ListFile.GetCount()!=0) /清除列表框內(nèi)容m_ListFile.DeleteString(0);if(strConnect="連接"
9、) pSession=new CInternetSession(AfxGetAppName(),/創(chuàng)建Internet會(huì)話PRE_CONFIG_INTERNET_ACCESS);try pConnection=pSession->GetFtpConnection(m_strFtpSite, /試圖建立FTP連接m_strName,m_strPwd);catch (CInternetException* e) /錯(cuò)誤處理e->Delete();pConnection=NULL;AfxMessageBox("連接錯(cuò)誤,請(qǐng)檢查地址和用戶名密碼");return;if
10、(pConnection!=NULL)/創(chuàng)建CFtpFileFind對(duì)象/傳遞CFtpConnection對(duì)象的指針pFileFind=new CFtpFileFind(pConnection);if(Find()m_BtnConnect.SetWindowText("斷開(kāi)連接");if(m_strName="")m_strName=_T("anonymous");m_strPwd=_T("anonymous");UpdateData(FALSE);elseAfxMessageBox("不能正確初始化!&
11、quot;);elseif (pConnection!=NULL)pConnection->Close();delete pConnection;if (pFileFind!=NULL)pFileFind->Close();delete pFileFind;delete pSession;m_BtnConnect.SetWindowText("連接");若連接出現(xiàn)錯(cuò)誤,則會(huì)顯示消息框“連接錯(cuò)誤”2.上傳若沒(méi)有選擇文件,則會(huì)出現(xiàn)消息框:“選擇文件”若上傳成功,則出現(xiàn)消息框:“上傳成功”同時(shí)還有上傳失敗的消息框。void CFtpDlg:OnUpload() Upd
12、ateData(TRUE); /獲得當(dāng)前輸入m_EditFtp.EnableWindow(FALSE); /禁止用來(lái)輸入的文本和編輯框控件m_EditName.EnableWindow(FALSE);m_EditPwd.EnableWindow(FALSE);m_StaFtp.EnableWindow(FALSE);m_StaName.EnableWindow(FALSE);m_StaPwd.EnableWindow(FALSE);m_BtnConnect.EnableWindow(FALSE); /禁止查詢按鈕CString strSourceName;CString strDestName
13、;CFileDialog dlg(TRUE,"","*.*");if(dlg.DoModal()=IDOK)strSourceName = dlg.GetPathName();/獲得待上傳得本地機(jī)文件的路徑和名稱strDestName = dlg.GetFileName();if(pConnection->PutFile(strSourceName,strDestName) /調(diào)用函數(shù)上傳文件AfxMessageBox("上傳成功! ",MB_OK|MB_ICONINFORMATION);while(m_ListFile.Get
14、Count()!=0)m_ListFile.DeleteString(0);Find();elseAfxMessageBox("上傳失敗! ",MB_OK|MB_ICONSTOP);elseAfxMessageBox("請(qǐng)選擇文件! ",MB_OK|MB_ICONSTOP); /文件選擇錯(cuò)誤m_EditFtp.EnableWindow(TRUE); /激活用來(lái)輸入的文本和編輯框控件m_EditName.EnableWindow(TRUE);m_EditPwd.EnableWindow(TRUE);m_StaFtp.EnableWindow(TRUE);m
15、_StaName.EnableWindow(TRUE);m_StaPwd.EnableWindow(TRUE);m_BtnConnect.EnableWindow(TRUE);/激活查詢按鈕3.下載 下載時(shí)也出現(xiàn)一系列對(duì)話框用來(lái)提示錯(cuò)誤或非法操作。void CFtpDlg:OnDownload() UpdateData(TRUE); /獲得當(dāng)前輸入int nSel = m_ListFile.GetCurSel();CString strSourceName;m_ListFile.GetText(nSel,strSourceName); /獲得用戶在列表框中的選擇if(strSourceName
16、.GetAt(0)!='') /選擇的是文件CString strDestName;CFileDialog dlg(FALSE,"",strSourceName);if(dlg.DoModal()=IDOK)strDestName = dlg.GetPathName();/獲得下載文件在本地機(jī)上存儲(chǔ)的路徑和名稱if(pConnection->GetFile(strSourceName,strDestName) /下載文件AfxMessageBox("下載成功! ",MB_OK|MB_ICONINFORMATION);m_BtnDow
17、nLoad.EnableWindow(FALSE); /禁用下載按鈕elseAfxMessageBox("下載失敗! ",MB_OK|MB_ICONSTOP);elseif(strSourceName="")AfxMessageBox("請(qǐng)寫(xiě)入文件名! ",MB_OK|MB_ICONSTOP);else AfxMessageBox("不能下載目錄! ",MB_OK|MB_ICONSTOP);/選擇的是目錄m_BtnUpLoad.EnableWindow(TRUE); /激活查詢和上傳按鈕m_EditFtp.Enab
18、leWindow(TRUE); /激活用來(lái)輸入的文本和編輯框控件m_EditName.EnableWindow(TRUE);m_EditPwd.EnableWindow(TRUE);m_StaFtp.EnableWindow(TRUE);m_StaName.EnableWindow(TRUE);m_StaPwd.EnableWindow(TRUE);六、實(shí)驗(yàn)總結(jié):通過(guò)此次實(shí)驗(yàn),我使用MFC WinInet函數(shù)編寫(xiě)一個(gè)簡(jiǎn)單的FTP客戶端程序,實(shí)現(xiàn)FTP客戶端軟件的基本功能檢索FTP文件服務(wù)器,上傳和下載。在實(shí)驗(yàn)中,我初步了解了CInternetSession、 CFtpFileFind類及Get
19、FtpConnection()、FindFile()、 FindNextFile() 、GetFile()、PutFile()函數(shù)的使用,并學(xué)習(xí)了FTP的編程的過(guò)程。而且通過(guò)這個(gè)實(shí)驗(yàn)讓我對(duì)MFC的搭建也更加熟悉,溫習(xí)了以前學(xué)習(xí)的代碼。七、思考題或討論題1.WinInet有什么作用?答:為了開(kāi)發(fā)Internet客戶端程序。MFC類庫(kù)提供了專門的 Win32 Internet 擴(kuò)展接口,也就是WinInet。MFC將WinInet封裝在一個(gè)標(biāo)準(zhǔn)的、易于使用的類集合中。在編寫(xiě)WinInet客戶端程序時(shí),你既可以直接調(diào)用Win32函數(shù),也可以使用WinInet類庫(kù)。 WinInet(Windows Internet)API幫助程序員使用三個(gè)常見(jiàn)的Internet協(xié)議,這三個(gè)協(xié)議是:用于World Wide Web萬(wàn)維網(wǎng)的超文本傳輸協(xié)議(HTTP:Hypertext Transfer Protocol)、文件傳輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全新員工入職合同下載
- 2025廣告發(fā)布委托合同書(shū)版范本
- 全新房地產(chǎn)買賣合同范文下載
- 公司業(yè)務(wù)擔(dān)保合同
- 單位貨物采購(gòu)合同格式
- 幼兒園股份合伙經(jīng)營(yíng)合作合同書(shū)
- 2024年中考物理(安徽卷)真題詳細(xì)解讀及評(píng)析
- 地板磚購(gòu)銷合同模板
- 拓寬知識(shí)面的重要性主題班會(huì)
- 2025如果合同標(biāo)的不合格怎么辦反擔(dān)保
- 八年級(jí)下學(xué)期期末考試語(yǔ)文試題(PDF版含答案)
- 浙教版八年級(jí)下冊(cè)科學(xué)第一章 電和磁整章思維導(dǎo)圖
- (正式版)SH∕T 3541-2024 石油化工泵組施工及驗(yàn)收規(guī)范
- 動(dòng)物疫病傳染病防控培訓(xùn)制度
- 美團(tuán)代運(yùn)營(yíng)合同模板
- 初中英語(yǔ)七選五經(jīng)典5篇(附帶答案)
- GB/T 43676-2024水冷預(yù)混低氮燃燒器通用技術(shù)要求
- 特種設(shè)備檢驗(yàn)現(xiàn)場(chǎng)事故案例分析
- 2023-2024學(xué)年西安市高二數(shù)學(xué)第一學(xué)期期末考試卷附答案解析
- 關(guān)于教師誦讀技能培訓(xùn)課件
- 化學(xué)品使用人員培訓(xùn)課程
評(píng)論
0/150
提交評(píng)論