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

正文內(nèi)容

ftp客戶端設(shè)計(jì)與開(kāi)發(fā)—免費(fèi)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-01-04 06:08 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 動(dòng) FTP 優(yōu)缺點(diǎn)的簡(jiǎn)要總結(jié): 主動(dòng) FTP 對(duì) FTP 服務(wù)器的管理有利,但對(duì)客戶端的管理不利。因?yàn)?FTP 服務(wù)器企圖與客戶端的高位隨機(jī)端口建立連接,而這個(gè)端口很有可能被客戶端的防火墻阻塞掉。被動(dòng) FTP 對(duì) FTP 客戶端的管理有利,但對(duì)服務(wù)器端的管理不利。因?yàn)榭蛻舳艘c服務(wù)器 建立 兩個(gè)連接,其中一個(gè)連到一個(gè)高位隨機(jī)端口,而這個(gè)端口很有可能被服務(wù)器端的防火墻阻塞掉。 FTP 服務(wù)器的管理員需要他們的服務(wù)器有最多的客戶連接,那么必須得支持被動(dòng) FTP。我們可以通過(guò)為 FTP 服務(wù)器指定一個(gè)有限的端口范圍來(lái)減小服務(wù)器高位端口的暴露。這樣,不在這個(gè)范圍的任何端口會(huì)被服務(wù)器的防火墻阻塞。雖然這沒(méi)有消除所有針對(duì)服務(wù)器的危險(xiǎn),但它大大減少了危險(xiǎn)。 3 FTP軟件 需求分析 需要完成目標(biāo) 本系統(tǒng)的開(kāi)發(fā)要求采用 C/S 結(jié)構(gòu),選用所熟悉的開(kāi)發(fā)工具及開(kāi)發(fā)環(huán)境進(jìn)行本系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。 第 7 頁(yè) 共 21 頁(yè) 設(shè)計(jì)開(kāi)發(fā)一個(gè)多功能 FTP 軟件,本設(shè)計(jì)要求實(shí)現(xiàn)部分功能 —— 站點(diǎn)的連接、文件的上傳與下 載、文件的重命名、及站點(diǎn)連接功能;能實(shí)現(xiàn)站點(diǎn)的添加與管理;能實(shí)現(xiàn)相關(guān)個(gè)人的設(shè)置保存(比如站點(diǎn)名及用戶 登錄 口令等)。 本畢業(yè)設(shè)計(jì)要求提供能實(shí)現(xiàn)文件傳輸及站點(diǎn)連接等功能的軟件,要求軟件具有操作簡(jiǎn)便、界面友好等特性;形成一個(gè)真正實(shí)用的、功能完善的 FTP軟件。 功能需求 從用戶的角度來(lái)分析 本軟件 應(yīng) 具有以下功能:主機(jī)的連接 包括直接連接和連接,直接連接主要是針對(duì)偶爾一次登錄的主機(jī),連接是針對(duì)常用的主機(jī)需要記錄多個(gè)登錄信息;對(duì)常用的主機(jī)地址及基本配置信息需要進(jìn)行保存;文件能上傳和下載 ,判斷文件名是否重復(fù)進(jìn)行 詢問(wèn)是否覆蓋 , 在斷電的情況下能對(duì)文件進(jìn)行斷點(diǎn)續(xù)傳, 傳輸時(shí)進(jìn)度顯示(獲取文件大小和傳輸速率估計(jì)完成時(shí)間) ;通過(guò)該軟件能新建文件夾,文件名的修改,文件的刪除 ; 能搜索 文件 名為指定的文件;界面需要友好,簡(jiǎn)潔。 環(huán)境需求 操作系統(tǒng): Windows XP(or Windows 2020Advance Server) 網(wǎng)絡(luò)服務(wù)器: FTP 開(kāi)發(fā)平臺(tái): Visual Studio .NET 2020 4 FTP軟件詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 軟件總體分析與設(shè)計(jì) 根據(jù)需求分析,按照系統(tǒng)開(kāi)發(fā)的基本觀點(diǎn)對(duì)功能 進(jìn) 行分解,從功能上可對(duì)模塊 作如下劃分: 塊 :主要完成主機(jī)與服務(wù)器之間的連接與關(guān)閉操作。 :主要完成文件的顯示、新建文件、刪除文件等。 :主要完成主機(jī)與服務(wù)器連接成功以后文件的上傳與下載。 :主要是保存一些登錄信息和一些簡(jiǎn)單的配置信息。 各模塊具體設(shè)計(jì) 連接管理 設(shè)計(jì) 該 Ftp 客戶端工具 用一個(gè) Winsocket 連接上 Ftp 服務(wù)器,然后向其發(fā)送命令。在這個(gè)過(guò)程中,我們依靠發(fā)送 —— 響應(yīng)的機(jī)制。即發(fā)送 Ftp 命令 —— 接收返回的響應(yīng)信息 —— 分析該信息 —— 執(zhí)行相關(guān)操作 —— 發(fā)送下一條命令。在一般意義上,有一個(gè) socket用來(lái)連接 Ftp 服務(wù)器的相關(guān)端口(如默認(rèn)的 21),它負(fù)責(zé) Ftp 命令的發(fā)送和接收返回的響應(yīng)信息。一些操作如“進(jìn)入目錄”、 “刪除文件”,依靠這個(gè) socket 發(fā)送一條命令就可完成了。 1. 客戶端與服務(wù)器連接 第 8 頁(yè) 共 21 頁(yè) FTP 是建立在 TCP 之上的連接,端口號(hào)使用 21。若客戶端與服務(wù)器之間成功連接,服務(wù)器將返回字符串,如: 220 GMS ( Version ) 。 前三個(gè)字符 220 表示客戶端與服務(wù)器成功連接,后面的字符會(huì)因服務(wù)器的不同而不同,但我們只關(guān)心前三個(gè)字符。 2. 用戶名和密碼認(rèn)證 客戶端發(fā)送用戶名給服務(wù)器,如: USER he, 如果服務(wù)器找到用戶名 he,將返回字符串,如: 331 User name okay, need password。 接著客戶端應(yīng)發(fā)送密碼給服務(wù)器,如: PASS 123, 密碼正確,返回如: 230 User logged in, proceed,如果用戶名或密碼認(rèn)證沒(méi)有 通過(guò),返回如: 530 Not logged in。 用戶名也可以使用匿名,如: USER anonymous, 返回如: 331 Anonymous access allowed, send identity ( name) as password。 3. 應(yīng)答碼及其含義 110:重新啟動(dòng)標(biāo)記應(yīng)答。在這種情況下文本是確定的,它必須是: MARK yyyy=mmmm 其中 yyyy 是用戶進(jìn)程標(biāo)記, mmmm 是服務(wù)器標(biāo)記。 120:服務(wù)在 nnn分鐘內(nèi)準(zhǔn)備好。 125:數(shù)據(jù)連接已打開(kāi),準(zhǔn)備傳送。 150:文件狀態(tài)良好,打開(kāi)數(shù)據(jù)連接。 200:命令成功。 202:命令未實(shí)現(xiàn)。 211:系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng)。 212:目錄狀態(tài)。 213:文件狀態(tài)。 214:幫助信息,信息僅對(duì)人類(lèi)用戶有用。 215:名字系統(tǒng)類(lèi)型。 220:對(duì)新用戶服務(wù)準(zhǔn)備好。 221:服務(wù)關(guān)閉控制連接,可以退出 登錄 。 225:數(shù)據(jù)連接打開(kāi),無(wú)傳輸正在進(jìn)行。 226:關(guān)閉數(shù)據(jù)連接,請(qǐng)求的文件操作成功。 227:進(jìn)入被動(dòng)模式。 230:用戶 登錄 。 250:請(qǐng)求的文件操作完成。 257:創(chuàng)建“ PATHNAME”。 331:用戶名正確,需要口令。 第 9 頁(yè) 共 21 頁(yè) 332: 登錄 時(shí)需要賬戶信息。 350:請(qǐng)求的文件操作需要進(jìn)一步命令。 421:不能提供服務(wù),關(guān)閉控制連接。 425:不能打開(kāi)數(shù)據(jù)連接。 426:關(guān)閉連接,中止傳輸。 450:請(qǐng)求的文件操作未執(zhí)行。 451:中止請(qǐng)求的操作:有本地錯(cuò)誤。 452:未執(zhí)行 請(qǐng)求的操作:系統(tǒng)存儲(chǔ)空間不足。 500:格式錯(cuò)誤,命令不可識(shí)別。 501:參數(shù)語(yǔ)法錯(cuò)誤。 502:命令未實(shí)現(xiàn)。 503:命令順序錯(cuò)誤。 504:此參數(shù)下的命令功能未實(shí)現(xiàn)。 530:未 登錄 。 532:存儲(chǔ)文件需要賬戶 信息。 550:未執(zhí)行請(qǐng)求的操作。 551:請(qǐng)求操作中止:頁(yè)類(lèi)型未知。 552:請(qǐng)求的文件操作中止,存儲(chǔ)分配溢出。 553:未執(zhí)行請(qǐng)求的操作:文件名不合法。 文件管理設(shè)計(jì) 文件 管理具有文件的主要是新建文件夾、刪除文件,使用 DirectoryInfo 類(lèi)的 Delete()方法和 CreateDirectory()方法來(lái)實(shí)現(xiàn)。文件屬性的設(shè)置包括:是否只讀、是否隱藏、是否歸檔,用 File 類(lèi)和 Directory 類(lèi)來(lái)完成對(duì)文件和文件夾的屬性設(shè)置。 文件傳輸設(shè) 計(jì) FTP 協(xié)議用兩個(gè)連接來(lái)達(dá)到客戶機(jī)與服務(wù)器之間交換數(shù)據(jù)的目的 如圖 3。 先建立 第一個(gè)連接 —— 控制連接,它用于傳送命令和響應(yīng)。 在 建立第二個(gè)連接 —— 數(shù)據(jù)連接,用于數(shù)據(jù)傳輸。 FTP 提供了兩種方式來(lái)建立數(shù)據(jù)連接,一種用 PORT命令,一種用 PASV 命令。 我們使用后者。客戶端發(fā)送 PASV 命令給服務(wù)器,服務(wù)器返回 IP地址和端口號(hào),用來(lái)提供給客戶端進(jìn)行數(shù)據(jù)連接。如: 227 Entering Passive Mode (10,175,125,49,9,17)括號(hào)里 6個(gè)數(shù)字中前 4個(gè)數(shù)字表示 IP 地址 ,后 2 個(gè)數(shù)字表示端口號(hào),這 2 個(gè)數(shù)字按如下公式計(jì)算端口號(hào): 9*256+17=2321 這樣,客戶端就可用 IP 地址 和端口號(hào) 2321 第 10 頁(yè) 共 21 頁(yè) 連接服務(wù)器,建立數(shù)據(jù)連接。 圖 3 文件傳輸中的處理過(guò)程 輔助功能設(shè)計(jì) 根據(jù)需求功能需要完成文件的上傳及下載必須要完成一些相關(guān)的輔助功能: ,需要在項(xiàng)目引用中添加 COM 標(biāo)簽中的 Microsoft Scripting Runtime 組件,來(lái)獲取系統(tǒng)驅(qū)動(dòng)器信息。 :在目錄輸入框中可以根據(jù)目錄來(lái)顯示所選定的文件夾下所有文件及文件夾信息,信息包括文件路徑、文件創(chuàng)建日期、文件大小,利用GetFileSystemEntries()方法來(lái)完成。 :信息的保存利用讀寫(xiě) INI 文件來(lái)實(shí)現(xiàn), INI 文件讀寫(xiě)操作由調(diào)用系統(tǒng) API 函數(shù)來(lái)完成。具體調(diào)用 WritePrivateProfileString()方法實(shí)現(xiàn) 寫(xiě)入 操作 ,用 GetPrivateProfileString()方法實(shí)現(xiàn)讀 操作。 模塊 的程序?qū)崿F(xiàn) 連接管理的程序?qū)崿F(xiàn) 在用戶打開(kāi)軟件后 進(jìn)入主窗體 (), 在連接服務(wù)器輸入框中輸入 IP地址、用戶名及密碼后。先發(fā)送 IP地址和端口號(hào)到服務(wù)器,然后對(duì)其應(yīng)答分析,如果應(yīng)答碼為 220表示對(duì)新用戶服務(wù)準(zhǔn)備好,繼續(xù)發(fā)送用戶名返回應(yīng)答碼 331表示用戶名正確需要口令。最后發(fā)送密碼直到返回應(yīng)答碼 230表示用戶登錄成功。其主要代碼程序如下: public void Connect() { socketControl = new Socket(,)。 IPEndPoint ep = new IPEndPoint((RemoteHost), strRemotePort)。 第 11 頁(yè) 共 21 頁(yè) // 鏈接 try { (ep)。 } catch(Exception) { throw new IOException(Couldn39。t connect to remote server)。 } // 獲取應(yīng)答碼 ReadReply()。 if(iReplyCode != 220) { DisConnect()。 throw new IOException((4))。 } // 登錄 SendCommand(USER +strRemoteUser)。 if( !(iReplyCode == 331 || iReplyCode == 230) ) { CloseSocketConnect()。//關(guān)閉連接 throw new IOException((4))。 } if( iReplyCode != 230 ) { SendCommand(PASS +strRemotePass)。 if( !(iReplyCode == 230 || iReplyCode == 202) ) { CloseSocketConnect()。//關(guān)閉連接 throw new IOException((4))。 } } bConnected = true。 // 切換到目錄 ChDir(strRemotePath)。 } 文件管理的程序?qū)崿F(xiàn) 對(duì)文件的管理有新建、刪除、及屬性設(shè)置。這里只對(duì)文件夾的刪除操作做介紹,先實(shí)例化 DirectoryInfo類(lèi)并傳入?yún)?shù) path,然后判斷是文件還是文件夾用Delete()方法來(lái)刪除文件。 其主要代碼程序如下: private void MyDeleteFile(string path) {//刪除本地文件 第 12 頁(yè) 共 21 頁(yè) try { if(path==null) return。 DirectoryInfo MyDir=new DirectoryInfo(path)。 if((是否刪除文件夾: +path+及其所有內(nèi)容? ,提示信息 ,)==) { (true)。 } else if((是否刪除文件: +path+及其所有內(nèi)容? ,提示信息 ,)==) { FileInfo fi=new FileInfo(path)。 ()。 } } catch { (該文件不存在 ,信息提示,)。 } } 文件傳輸?shù)?程序 實(shí)現(xiàn) 先進(jìn)行判斷是否與主機(jī)連接成功,獲取要下載的文件名、保存到本機(jī)的路徑、保存到本機(jī)時(shí)的文件名。在進(jìn)行設(shè)置傳輸模式:二進(jìn)制 Binary傳輸或 ACSII傳輸,在創(chuàng)建數(shù)據(jù)連接發(fā)送 PASV被動(dòng)模式進(jìn)行傳輸然后對(duì)應(yīng)答命令進(jìn)行判斷。最后進(jìn)行數(shù)據(jù)傳輸以流方式傳輸。其主要代碼程序如下: public void Get(string strRemoteFileName,string strFolder,string strLocalFileName) { if(!bConnected) { Connect()。 } SetTransferType()。 if (()) { strLocalFileName = strRemoteFileName。 } if(!(strLocalFileName)) 第 13 頁(yè) 共 21 頁(yè) { Stream st = (strLocalFileName)。 ()。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1