freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c的ftp客戶端設計與實現(xiàn)-資料下載頁

2024-12-06 01:22本頁面

【導讀】未定義書簽。未定義書簽。未定義書簽。未定義書簽。未定義書簽。未定義書簽。.連接服務器........

  

【正文】 件寫入流,將緩沖中的內(nèi)容寫入流中,并上傳到服務器。文件大小,然 后利用緩沖和文件流讀取文件內(nèi)容,通過FtpWebRequest 將 本 地 文 件 上 傳 至 FTP 服 務 器 。上 傳 結(jié) 束 后 關(guān)閉數(shù)據(jù)流,一般情況下 FTP 服務器為了保證其安全性,權(quán)限中會設置是否允許用戶上傳文件。上傳失敗時,出錯處理會在對話框面板中顯示出文件上傳失敗。上傳的具體代碼見附錄。核心代碼如下: Connect(url)。 = false。 = 。//文件上傳請求 = 。 int buffLength = 2048。 byte[] buff = new byte[buffLength]。 int contentLen。 FileStream fs = ()。//打開文件流讀上傳的文件 Stream stream = ()。 //把上傳的文件寫入流 contentLen = (buff, 0, buffLength)。 while( contentLen != 0 ){ ( buff,0,buffLength )。 contentLen = (buff, 0, buffLength)。 } ()。 ()。 . 下載文件 客戶端下載文件由為 FtpHander 類中的 downloadFile 函數(shù)來實現(xiàn)。如果用戶想要下載列表中的某一個文件,首先判斷項目的類型是否是文件,如果是文件,則得到下載的文件名并下載文件,如果選中的是目錄,則不能下載。用戶選擇好要下載的文件后,客戶端打開服務器連接端口,使用 FtpWebRequest 類的(new Uri(Path)) 方法 和 = new NetworkCredential(ftpUserId, ftpPassword)。操作登錄到服務器,把傳輸格式設置為二進制格式,使用 ()函數(shù)獲得文件名,下載并保存至用戶指定的路徑。下載完成后 ()關(guān)閉與服務器的連接并清除線程。當用戶下載失敗時,出錯處理會在信息顯示面板中顯示下載出錯。下載的具體代碼見附錄。 Connect(path + serverDirectory + // + serverfileName)。 = 。//文件下載請求 27 FtpWebResponse response。 Try { response = (FtpWebResponse)()。//獲得服務器端響應 } catch (Exception) { (serverfileName + 是目錄!不可以下載! )。 return。 } Stream ftpStream = ()。 cl =。 ///獲取文件大小 int bufferSize=2048。// 設置緩沖 byte[] buffer=new byte[bufferSize]。 readcount=(buffer,0,bufferSize)。 FileStream fs = new FileStream(downLoadFile, , )。 BinaryWriter rw = new BinaryWriter(fs, )。 //將文件通過二進制流下載 while (readcount0) { (buffer)。 readcount= (buffer,0,bufferSize)。 } ()。 ()。 . 查詢歷史記錄 查詢歷史記錄功能主要是通過數(shù)據(jù)庫操作來實現(xiàn)的,我在程序中為數(shù)據(jù)庫操作封裝了一個 DataBaseHander 類,包括查詢插入刪除方法,每次用戶在上傳或下載一次文件時,就調(diào)用 DataBaseHander 類的 InsertHistory(string filename, string localDirectory, string addr)方法,將此次操作的文件名,存儲地址和服務器地址存儲進數(shù)據(jù)庫中。每插入成功后就調(diào)用 SelectHistory( DataGrid gridHistory)函數(shù)刷新當前頁面重新顯示記錄內(nèi)容。核心代碼如下: using (var context = new FtpdbEntities()) { history h = new history() { opType = 下載 , tfilename = filename, localDirectory = localDirectory, addr = addr }。 try { (h)。 ()。 } 28 catch (Exception ex) { (添加失 敗 )。 } } . 常用地址管理 常用地址管理與歷史記錄查詢功能一樣主要是通過數(shù)據(jù)庫操作來實現(xiàn)的,我在程序中為數(shù)據(jù)庫操作 DataBaseHander 類添加了一個SelectUsefulAddr(DataGrid gridAddr)方法,當打開此頁時,就從數(shù)據(jù)庫中讀取數(shù)據(jù),將常用的地址信息顯示在 datagrid 中,此外,用戶還可以自己插入常用的地址。每插入成功后就刷新當前頁面重新顯示記錄內(nèi)容。核心代碼如下: public void InsertUsefulAddr(string ftpName, string ftpAddr) { using (var context = new FtpdbEntities()) { usefulAddr ad = new usefulAddr() { name = ftpName, addr = ftpAddr, }。 try { (ad)。 ()。 } catch (Exception ex) { (添加失敗 )。 } } } 3. 數(shù)據(jù)庫建設 . 數(shù)據(jù)庫表結(jié)構(gòu) 因為 FTP 服務器的主要功能為文件的上傳和下載,所以數(shù)據(jù)庫表并不多,主要用于存儲下載上傳記錄和常用的 IP 地址數(shù)據(jù)表。 表結(jié)構(gòu)如下圖所示: 歷史記錄表: 29 ID:自增性數(shù)據(jù),唯一表示每條記錄,主鍵 Type: int 型,標識此次操作為上傳還是下載,上傳為 1,下載為 0 Filename: varchar( 32),文件名字段,用于存儲文件名 Time: smalldatatime 類型,默認值為數(shù)據(jù)插入時間,記錄操作的操作時間 Path: varchar( 64)型,用以記錄文件的下載存放位置 Addr: varchar( 16)型,用以記錄文件的下載 ftp 服務端 IP 地址 常用 IP 地址數(shù)據(jù)表: ID:自增性數(shù)據(jù),唯一表示每條記錄,主鍵 Name: varchar( 32),服務端名字段,用以記錄服務端的名字 Addr: varchar( 16),記錄服務端的 IP 地址。 . 數(shù)據(jù)庫關(guān)系模型 History( Id, type, filename, time, path, addr ); UsefulRecords( Id, name, addr)。 30 . 數(shù)據(jù)庫 ER 圖 H i s t o r yt i m ef i l e n a m et y p e p a t hI d a d d r e s sU s e f u l R e c o r d sn a m eI da d d r操 作 歷 史 記 錄 E R 模 型常 用 地 址 表 E R 模 型 圖 31 數(shù)據(jù)庫 ER 圖 . 數(shù)據(jù)庫建表語句 CREATE TABLE history ( Id int identity(1,1) primary key, type int, filename varchar(32), time smalldatetime default getdate(), localDirectory varchar(64), addr varchar(32) )。 GO CREATE TABLE usefulrecords ( Id int identity(1,1) primary key, name varchar(32), addr varchar(16) )。 GO 31 4. 結(jié)語 FTP 的目標是提高文件的共享性和可靠高效地傳送數(shù)據(jù),而 FTP 客戶端的作用是使用戶方便的連接和訪問 FTP 服務器。本次試驗實現(xiàn)了一個簡單易用的 FTP客戶端,在分析 FTP 協(xié)議的基本工作原理和 FTP 的數(shù)據(jù)傳輸原理的基礎(chǔ)上,詳細介紹了如何 使用 C.NET 工具對 FTP 客戶端進行設計,選擇 C.NET 類庫來實現(xiàn)FTP 客戶端程序的上傳下載等主要功能,并用 Microsoft VisioStdio2021 軟件提供的一個支持可視化編程的開發(fā)環(huán)境,從而實現(xiàn)了對 FTP 客戶端的開發(fā)。雖然現(xiàn)在有很多實現(xiàn) FTP 客戶端程序的技術(shù)和方法,諸如 Winsock 控件和 Delphi 的Indy 組件等,但是使用 C.NET 在程序?qū)崿F(xiàn)上顯得更加簡捷靈活,在本次試驗中使用的方法也是比較便捷和高效的。 參考文獻 32 [1]馬俊 .C程序設計及應用教程 .人民郵電出版社 , 2021年 1月第 3版 [2]謝希仁 .計算機網(wǎng)絡(第五版) .電子工業(yè)出版社 ,2021年 6月第 1版 [3]龔俐,毛曉蛟 .基于 C的 FTP客戶端實現(xiàn) .南京師范大學強化培養(yǎng)學院 ,2021年 10月
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1