《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)說(shuō)明書FTP文件傳輸?shù)膶?shí)現(xiàn)
《《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)說(shuō)明書FTP文件傳輸?shù)膶?shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)說(shuō)明書FTP文件傳輸?shù)膶?shí)現(xiàn)(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、課程設(shè)計(jì)任務(wù)書 題 目: FTP文件傳輸?shù)膶?shí)現(xiàn) 初始條件: 理論:學(xué)完“操作系統(tǒng)”和“計(jì)算機(jī)網(wǎng)絡(luò)”課程,掌握一種高級(jí)程序設(shè)計(jì)語(yǔ)言(C++、C#、Java、Delphi)及集成開發(fā)平臺(tái)的使用。 實(shí)踐:計(jì)算機(jī)學(xué)院科學(xué)系實(shí)驗(yàn)中心提供計(jì)算機(jī)、軟件平臺(tái)和網(wǎng)絡(luò)環(huán)境。如果自己有計(jì)算機(jī)可以在其上進(jìn)行設(shè)計(jì)。 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求) (1) 模仿應(yīng)用FTP協(xié)議。 (2)主要功能: 1支持站點(diǎn)目錄和文件結(jié)構(gòu)瀏覽。 2支持?jǐn)嗑€自動(dòng)重新連接并自動(dòng)恢復(fù)傳輸。 3
2、文件列表過濾,遠(yuǎn)程編輯,整個(gè)遠(yuǎn)端目錄刪除,目錄上傳下載。 (3)應(yīng)用所學(xué)計(jì)算機(jī)網(wǎng)絡(luò)課程中的知識(shí),利用網(wǎng)絡(luò)實(shí)用程序?qū)崿F(xiàn)其協(xié)議。 (4)編制好網(wǎng)絡(luò)實(shí)用程序后,設(shè)計(jì)若干用例,上機(jī)測(cè)試并分析所設(shè)計(jì)的程序。 (5)設(shè)計(jì)報(bào)告格式按附件要求書寫。課程設(shè)計(jì)報(bào)告書正文的內(nèi)容應(yīng)包括: 設(shè)計(jì)題目;需求說(shuō)明(要求、功能簡(jiǎn)述)或問題描述; 設(shè)計(jì)說(shuō)明(簡(jiǎn)要的分析與概要設(shè)計(jì));詳細(xì)的算法描述; 源程序與執(zhí)行結(jié)果(含測(cè)試方法和測(cè)試結(jié)果);使用說(shuō)明; 設(shè)計(jì)心得(設(shè)計(jì)的特點(diǎn)、不足、收獲與體會(huì)); 展望(該實(shí)用程序進(jìn)一步改進(jìn)擴(kuò)展的設(shè)想)。 時(shí)間安排: 設(shè)計(jì)時(shí)間一周: 周1:查閱相關(guān)資料。 周2:系統(tǒng)分析,設(shè)計(jì)
3、。 周3周4:編程并上機(jī)調(diào)試 周5:撰寫課程設(shè)計(jì)報(bào)告。 設(shè)計(jì)驗(yàn)收安排:19周星期五8:00起到計(jì)算機(jī)學(xué)院科學(xué)系實(shí)驗(yàn)中心進(jìn)行上機(jī)驗(yàn)收。 設(shè)計(jì)報(bào)告書收取時(shí)間:19周的星期五下午5:00之前。 指導(dǎo)教師簽名: 年 月 日 系主任(或責(zé)任教師)簽名: 年 月 日 武漢理工大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)說(shuō)明書 FTP文件傳輸?shù)膶?shí)現(xiàn) 1設(shè)計(jì)題目 FTP文件傳輸?shù)膶?shí)現(xiàn) 2需求說(shuō)明(要求、功能簡(jiǎn)述)或問題描述 2.1 FTP概念和傳輸原理 FTP是Internet上使用非常廣泛的一種通訊協(xié)議。
4、它是由支持Internet文件傳輸?shù)母鞣N規(guī)則所組成的集合,這些規(guī)則使 Internet用戶可以把文件從一個(gè)主機(jī)拷貝到另一個(gè)主機(jī)上,因而為用戶提供了極大的方便和收益。 FTP和其它Internet服務(wù)一樣,也是采用客戶機(jī)/服務(wù)器方式。使用方法很簡(jiǎn)單,啟動(dòng)FTP客戶端程序先與遠(yuǎn)程主機(jī)建立連接,然后向遠(yuǎn)程主機(jī)發(fā)出傳輸命令,遠(yuǎn)程主機(jī)在收到命令后就給予響應(yīng),并執(zhí)行正確的命令。FTP有一個(gè)根本的限制,那就是,如果用戶未被某一FTP主機(jī)授權(quán),就不能訪問該主機(jī),實(shí)際上是用戶不能遠(yuǎn)程登錄(Remote Login)進(jìn)入該主機(jī)。也就是說(shuō),如果用戶在某個(gè)主機(jī)上沒有注冊(cè)獲得授權(quán),沒有用戶名和口令,就不能與該主機(jī)進(jìn)行
5、文件的傳輸。而Anonymous FTP則取消了這種限制。 FTP支持兩種模式,一種方式叫做Standard(也就是PORT方式,主動(dòng)方式),一種是Passive (也就是PASV,被動(dòng)方式)。Standard模式FTP的客戶端發(fā)送PORT命令到FTP服務(wù)器。Passive模式FTP的客戶端發(fā)送PASV命令到FTPServer。Port模式FTP客戶端首先和FTP服務(wù)器的TCP21端口建立連接,通過這個(gè)通道發(fā)送命令,客戶端需要接收數(shù)據(jù)的時(shí)候在這個(gè)通道上發(fā)送PORT命令。PORT命令包含了客戶端用什么端口接收數(shù)據(jù)。在傳送數(shù)據(jù)的時(shí)候,服務(wù)器端通過自己的TCP20端口連接至客戶端的指定端口發(fā)送數(shù)據(jù)
6、。FTP server必須和客戶端建立一個(gè)新的連接用來(lái)傳送數(shù)據(jù)。Passive模式在建立控制通道的時(shí)候和Standard模式類似,但建立連接后發(fā)送的不是Port命令,而是Pasv命令。FTP服務(wù)器收到Pasv命令后,隨機(jī)打開一個(gè)高端端口(端口號(hào)大于1024)并且通知客戶端在這個(gè)端口上傳送數(shù)據(jù)的請(qǐng)求,客戶端連接FTP服務(wù)器此端口,然后FTP服務(wù)器將通過這個(gè)端口進(jìn)行數(shù)據(jù)的傳送,這個(gè)時(shí)候FTP server不再需要建立一個(gè)新的和客戶端之間的連接。 FTP可用多種格式傳輸文件,通常由系統(tǒng)決定,大多數(shù)系統(tǒng)(包括UNIX系統(tǒng))只有兩種模式:文本模式(ASCII)和二進(jìn)制模式(BIN/IMAGE)。
7、簡(jiǎn)單的說(shuō),F(xiàn)TP就是完成兩臺(tái)計(jì)算機(jī)之間的拷貝,從遠(yuǎn)程計(jì)算機(jī)拷貝文件至自己的計(jì)算機(jī)上,稱之為下載文件。若將文件從自己計(jì)算機(jī)中拷貝至遠(yuǎn)程計(jì)算機(jī)上,則稱之為上載文件。在TCP/IP協(xié)議中,F(xiàn)TP標(biāo)準(zhǔn)命令TCP端口號(hào)為21,Port方式數(shù)據(jù)端口為20。 FTP(非匿名)必須要有4要素:FTP主機(jī)地址,端口號(hào),用戶名,密碼。 2.2 需求說(shuō)明 完成兩臺(tái)計(jì)算機(jī)之間的拷貝,實(shí)現(xiàn)文件的上傳和下載; 支持站點(diǎn)目錄和文件結(jié)構(gòu)瀏覽; 文件列表過濾,遠(yuǎn)程編輯,整個(gè)遠(yuǎn)端目錄刪除; 支持?jǐn)嗑€自動(dòng)重新連接并自動(dòng)恢復(fù)傳輸。 3設(shè)計(jì)說(shuō)明(簡(jiǎn)要的分析與概要設(shè)計(jì)) 采用VB編程,通過建立一系列的窗體模塊,程序模塊,
8、類模塊編制一個(gè)小的應(yīng)用軟件。該軟件的功能是當(dāng)程序運(yùn)行成功后,用戶可以選擇任意的FTP主機(jī)地址進(jìn)行登陸。當(dāng)選擇是匿名的FTP主機(jī)地址時(shí),選擇anonymous復(fù)選框,這時(shí)只需要輸入FTP主機(jī)地址就可以登陸,此時(shí)用戶名為anonymous,密碼為Emai1地址,以便更好地對(duì)用戶訪問進(jìn)行跟綜。如果不是匿名登陸,則取消選擇anonymous復(fù)選框,這時(shí)要輸入用戶名和密碼,一個(gè)用戶名對(duì)應(yīng)了一個(gè)訪問的權(quán)限。 通過WINSOCK建立連接,將信息發(fā)送到遠(yuǎn)程的ftp服務(wù)器主機(jī)上,實(shí)現(xiàn)用戶的登陸。 當(dāng)用戶成功登陸后,遠(yuǎn)程FTP主機(jī)的文件就全部列在frmMain窗體左側(cè)的TreeView控件中,當(dāng)點(diǎn)機(jī)TreeV
9、iew控件中的文件夾時(shí),相應(yīng)的文件夾中的文件就列在右側(cè)的ListView控件中,并且顯示文件的圖標(biāo),大小和最近的訪問日期。顯示的方式可以通過點(diǎn)擊工具欄中的圖標(biāo)來(lái)設(shè)置,文件可以以大圖標(biāo)的形式顯示,也可以以小圖標(biāo)的形式顯示。 當(dāng)用戶選擇了遠(yuǎn)程的某一個(gè)文件后,可以點(diǎn)擊工具欄上的下載,刪除,重命名圖標(biāo)來(lái)實(shí)現(xiàn)對(duì)遠(yuǎn)程文件的操作。但實(shí)際上大多數(shù)FTP主機(jī)為了安全采取了一些保護(hù)措施以保護(hù)自己的文件。除非你有特殊的權(quán)限,否則不能對(duì)文件進(jìn)行修改和刪除。但是大多數(shù)匿名FTP主機(jī)都允許用戶從其下載文件。 用戶也可以在本地選擇文件上傳到FTP服務(wù)器主機(jī),大多數(shù)用戶不能將自己機(jī)器上的任何一個(gè)文件拷貝至匿名FTP主機(jī)上
10、。即使有些匿名FTP主機(jī)確實(shí)允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。隨后,系統(tǒng)管理員會(huì)去檢查這些文件,他會(huì)將這些文件移至另一個(gè)公共下載目錄中,供其他用戶下載,利用這種方式,遠(yuǎn)程主機(jī)的用戶得到了保護(hù),避免了有人上載有問題的文件,如帶病毒的文件。因此要實(shí)現(xiàn)文件的上傳,還需選擇一個(gè)特殊的可以用戶上傳文件的FTP服務(wù)器主機(jī)地址。 4詳細(xì)的算法描述 用戶選擇與FTP服務(wù)器連接 匿名FTP服務(wù)器? 輸入用戶名和密碼 輸入FTP服務(wù)器地址 點(diǎn)擊連接,與FTP服務(wù)器連接 連接成功? 根據(jù)錯(cuò)誤代碼進(jìn)行調(diào)試 開 始 用戶選擇文件傳輸模式 進(jìn)行文件的上
11、傳,下載,修改,重命名等操作 操作成功? 出 錯(cuò) 處 理 退 出? 斷 開 連 接 Y N N Y N Y N Y 5 源程序與執(zhí)行結(jié)果(含測(cè)試方法和測(cè)試結(jié)果) 5.1原程序部分 5.1.1 frmMain 窗體的部分代碼 Const NAME_COLUMN = 0 Const TYPE_COLUMN = 1 Const SIZE_COLUMN = 2 Const DATE_COLUMN = 3 Private Declare Function LockWindowUpdate Lib "user32" (ByVal hw
12、ndLock As Long) As Long Dim mbMoving As Boolean 定義是否鼠標(biāo)按下 Const sglSplitLimit = 500 定義最小的分割距離 Private m_LastNode As Node Private WithEvents m_FtpConnection As CFtpConnection Private m_strFile As String Private m_lFileSize As Long Private Sub Check1_Click() If Check1.Value Then
13、 m_FtpConnection.PassiveMode = True Else m_FtpConnection.PassiveMode = False End If End Sub Private Sub CoolBar1_HeightChanged(ByVal NewHeight As Single) SizeControls picSplitter.Left End Sub Private Sub Form_Load() Me.Left = GetSetting(App.Title, "Settings", "
14、MainLeft", 1000) app.title是當(dāng)前程序的標(biāo)題 Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) 表示讀取注冊(cè)表中關(guān)于App.Title所指的應(yīng)用程序中Settings注冊(cè)表目錄下的MainTop變量的值,如果沒有找到這個(gè)注冊(cè)表變量則,默認(rèn)為1000 Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500) Me.Height = GetSetting(App.Title, "Settings", "Ma
15、inHeight", 6500) Set m_FtpConnection = New CFtpConnection m_FtpConnection.Timeout = 180 End Sub Private Sub Form_Unload(Cancel As Integer) Dim i As Integer Set m_FtpConnection = Nothing close all sub forms For i = Forms.Count - 1 To 1 Step -1 卸載所有窗體 Unload
16、Forms(i) Next SaveSetting App.Title, "Settings", "ViewMode", lvListView.View End Sub Private Sub m_FtpConnection_StateChanged(State As FTP_CONNECTION_STATES) Dim strStatus As String Select Case State Case FTP_CONNECTION_RESOLVING_HOST strStatus = "Resolvin
17、g host..." Case FTP_CONNECTION_HOST_RESOLVED strStatus = "Host resolved" Case FTP_CONNECTION_CONNECTED strStatus = "Connected" Case FTP_CONNECTION_AUTHENTICATION strStatus = "Authentication..." Case FTP_USER_LOGGED
18、 strStatus = "You are logged in. Connection ready." Case FTP_ESTABLISHING_DATA_CONNECTION strStatus = "Establishing data connection..." Case FTP_DATA_CONNECTION_ESTABLISHED strStatus = "Data connection established." Case FTP_RETRIEVING_DIRECTORY
19、_INFO strStatus = "Retrieving directory info..." Case FTP_DIRECTORY_INFO_COMPLETED strStatus = "Directory listing completed." Case State = FTP_TRANSFER_STARTING strStatus = "Transfer in progress..." Case FTP_TRANSFER_COMLETED
20、 strStatus = "Transfer completed." ProgressBar1.Value = 0.01 m_lFileSize = 0 End Select sbStatusBar.Panels(1).Text = strStatus End Sub Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) With imgSplitter imgS
21、plitter為image(圖片)控件 picSplitter.Move .Left, .Top, .Width \ 2, .Height - 20 End With picSplitter.Visible = True mbMoving = True LockWindowUpdate Me.hwnd 指將句柄為Handle的窗體鎖定,不能更新。 End Sub Private Sub m_FtpConnection_UploadProgress(lBytes As Long) On Error Resume Next
22、 sbStatusBar.Panels(1).Text = "Uploading " & m_strFile & " (" & lBytes & " bytes)" ProgressBar1.Value = lBytes / (m_lFileSize / 100) End Sub Private Sub mnuConnect_Click() Call EstablishConnection End Sub Private Sub mnuDelete_Click() Dim intRetVal As Integer Dim strFile
23、Name As String On Error GoTo ERROR_HANDLER strFileName = tvTreeView.SelectedItem.Key & lvListView.SelectedItem.Text intRetVal = MsgBox("Do you really want to delete file " & strFileName & "?", vbYesNoCancel, "Delete file") If intRetVal = vbYes Then If m_FtpConnection.Del
24、eteFile(strFileName) Then ListFiles tvTreeView.SelectedItem 返回最近選中的項(xiàng)目 Else MsgBox "Cant delete file." & vbCrLf & vbCrLf & _ "Server response: " & _ m_FtpConnection.GetLastServerResponse, , _ "Cant delete
25、file" End If End If Exit Sub ERROR_HANDLER: If Err = 91 Then MsgBox "Select file to rename, please.", vbInformation, "Rename File" Else MsgBox "Error occured!" & vbCrLf & "#" & Err.Number & ": " & Err.Description, _ vbInformation, "Ren
26、ame File" End If End Sub Private Sub mnuDownload_Click() Call DownloadFile End Sub Private Sub mnuFile_Click() With m_FtpConnection mnuDownload.Enabled = Not .Busy mnuUpload.Enabled = Not .Busy End With End Sub Private Sub mnuHelp_Click() mnuHelpAbout
27、.Enabled = Not m_FtpConnection.Busy End Sub Private Sub mnuListViewMode_Click(Index As Integer) Select Case Index 當(dāng)鼠標(biāo)點(diǎn)擊工具欄的view菜單時(shí) Case 0 lvListView.View = lvwIcon 顯示大圖標(biāo)的情況 Case 1 lvListView.View = lvwSmallIcon 顯示小圖標(biāo)的情況 Case 2 lvListView.View
28、= lvwList 只顯示列表 Case 3 lvListView.View = lvwReport 顯示文件大小和日期 End Select tbToolBar.Buttons(15 + Index).Value = tbrPressed End Sub Private Sub tbToolBar_ButtonClick(ByVal Button As MSComctlLib.Button) ByRef是VB默認(rèn)的參數(shù)傳遞方式,如果指定傳遞的是參數(shù)的值要使用關(guān)鍵字ByVal Dim strTemp As
29、String On Error Resume Next Select Case Button.Key Case "Connect" Call EstablishConnection Case "UpLevel" Set tvTreeView.SelectedItem = tvTreeView.SelectedItem.Parent strTemp = tvTreeView.SelectedItem.FullPath strTemp =
30、Mid$(strTemp, InStr(1, strTemp, "/")) InStrRev返回某一字符串從另一字符串的右側(cè)開始算起第一次出現(xiàn)的位置 If m_FtpConnection.SetCurrentDirectory(strTemp) Then ListFiles tvTreeView.SelectedItem End If Case "Stop" If Not m_FtpConnection.CloseConnection Then I
31、f m_FtpConnection.FtpGetLastError = ERROR_FTP_USER_TRANSFER_IN_PROGRESS Then Dim intRetVal As Integer intRetVal = MsgBox("Data transfer in progress. Do you want to cancel the data transfer?", vbYesNo + vbQuestion) If intRetVal = vbYes Th
32、en m_FtpConnection.CancelTransfer End If End If End If Case "Refresh" Call RefreshDirectory Case "Download" mnuDownload_Click Case "Upload" mnuUpload_Click
33、 Case "CreateDirectory" mnuCreateDir_Click Case "Delete" mnuDelete_Click Case "Rename" mnuRename_Click Case "View Large Icons" lvListView.View = lvwIcon Case "View Small Icons" lvListView.View
34、= lvwSmallIcon Case "View List" lvListView.View = lvwList Case "View Details" lvListView.View = lvwReport End Select End Sub Private Sub mnuFileClose_Click() unload the form Unload Me End Sub Public Function FormatFileSize(lFileSize As L
35、ong) As String On Error GoTo ERROR_HANDLER If lFileSize >= 1024 Then FormatFileSize = Format$(CStr(lFileSize / 1024), "### ### ### KB") CStr 轉(zhuǎn)換為String類型 Else FormatFileSize = CStr(lFileSize) & " " & "bytes" End If Exit Function ERROR_HANDLER: Debug.Pri
36、nt Err.Number & " " & Err.Description End Function Private Sub tvTreeView_DragDrop(Source As Control, x As Single, y As Single) source只正在被拖動(dòng)的控件,x,y指鼠標(biāo)指針在目標(biāo)對(duì)象中的坐標(biāo)值 If Source = imgSplitter Then SizeControls x End If End Sub Private Sub AddFileToListView(oFtpFile As CFtpFile)
37、 Dim intIcon As Integer Dim strFileName As String strFileName = oFtpFile.FileName intIcon = GetImageNumber(strFileName) Set lvItem = lvListView.ListItems.Add(, strFileName, strFileName, intIcon, intIcon) lvItem.SubItems(1) = oFtpFile.FileSize lvItem.SubItems(2) = o
38、FtpFile.LastWriteTime End Sub Private Sub RefreshDirectory() With tvTreeView.SelectedItem 從treeview中移除所有subfolders If .Children > 0 Then For i = 1 To .Children tvTreeView.Nodes.Remove (.Child.Index) Next i End If lvListView
39、.ListItems.Clear ListFiles tvTreeView.SelectedItem End With End Sub Private Sub EstablishConnection() Dim tvNode As Node Dim f As New frmConnect f.Show vbModal 顯示連接窗體的內(nèi)容 If f.Action = comdOK Then 當(dāng)按下OK時(shí),清空treeview和listview的內(nèi)容 tvTreeView.Nodes.Clear lvListView.ListI
40、tems.Clear With m_FtpConnection .FtpServer = f.URL .UserName = f.UserName .Password = f.Password .PassiveMode = CBool(Check1.Value) call Connect method If .Connect Then Label1 = f.URL add root node to the treeview
41、 Set tvNode = tvTreeView.Nodes.Add(, , , .CurrentDirectory, 1) tvNode.Key = .CurrentDirectory Set tvTreeView.SelectedItem = tvNode ListFiles tvNode, True End If .Connect End With m_FtpConnection End If f.Action = comdOK End Sub 5.2.2
42、 frmconnect窗體的部分代碼 Public Property Get UserName() As String UserName = mvarUserName End Property Public Property Get Password() As String Password = mvarPassword End Property Public Property Get URL() As String URL = mvarURL End Property Private Sub chkAnonym_Click() If chkAno
43、nym.Value Then txtUserName = "anonymous" txtPassword.PasswordChar = "" txtPassword = "guest@" Frame3.Caption = "Your E-Mail Address" Else txtUserName = "" txtPassword.PasswordChar = "*" txtPassword = "" Frame3.Caption = "Password" End If End Sub P
44、rivate Sub cmdCancel_Click() mvarAction = comdCancel Unload Me End Sub Private Sub cmdOK_Click() If Len(txtURL) = 0 Then MsgBox "Enter a URL or click on Cancel button.", vbOKOnly + vbInformation, "Invalid URL" Exit Sub Else mvarURL = LCase(txtURL.Text) End If If Len(txtUserName.
45、Text) = 0 Then mvarUserName = vbNullString Else mvarUserName = txtUserName.Text End If If Len(txtPassword.Text) = 0 Then mvarPassword = vbNullString Else mvarPassword = txtPassword.Text End If mvarAction = comdOK Unload Me End Sub Public Property Let Action(ByVal vData As C
46、ommand) mvarAction = vData End Property Public Property Get Action() As Command used when retrieving value of a property, on the right side of an assignment. Syntax: Debug.Print X.Action Action = mvarAction End Property 5.2 運(yùn)行結(jié)果 5.2.1 開始界面(見圖一) (圖
47、一) 5.2.2 用戶點(diǎn)擊file->connect to 或工具欄上的連接后的界面(見圖二) (匿名方式) (非匿名)(圖二) 5.2.3用戶與ftp服務(wù)器主機(jī)地址ftp://vip:vip88@202.118.167.160 連接成功的界面(見圖三) (圖三) 分析: 220 Serv-U FTP Server v6.1 for WinSock ready .. 表示服務(wù)就緒 ; USER vip表示用戶名字為vip; 331 Us
48、er name okay, need password...表示用戶名正確,需要口令; PASS vip88表示用戶的密碼為vip88; 230 User logged in, proceed. 表示用戶已經(jīng)注冊(cè)完畢; 257 "/" is current directory.表示路徑已建立;
49、 PORT 192,168,18,128,4,76 表示當(dāng)前客戶端的IP為192.168.18.128 ,端口號(hào)為4*256+76=1100; 200 PORT Command successful. 表示命令執(zhí)行正常結(jié)束; 150 Opening ASCII mode data connection for /bin/ls 表示文件狀態(tài)正確,正在打開數(shù)據(jù)連接;
50、 226 Transfer complete表示正在關(guān)閉數(shù)據(jù)連接。請(qǐng)求文件動(dòng)作成功結(jié)束(例如,文件傳送或終止); 在左側(cè)列的是遠(yuǎn)程服務(wù)器提供給用戶共享的文件夾,右側(cè)列的是文件夾所包含的文件,并列出文件的圖標(biāo),大小和最近更改日期。 5.2.4用戶從ftp主機(jī)上下載文件,保存到本地的subject文件夾中(見圖四) (圖四) 5.2.5文件下載成功:(見圖五) (圖五)
51、6 使用說(shuō)明 6.1 界面使用說(shuō)明 (圖六) 如圖六,從左到右的功能依次為建立連接,返回上一級(jí) ,停止文件傳輸,刷新,下載,上傳,create new directory,刪除文件,重命名,顯示大圖標(biāo),顯示小圖標(biāo),顯示列表,顯示詳細(xì)信息。 同時(shí)用戶也可以在文件菜單中執(zhí)行相關(guān)的操作。 6.2 代碼的對(duì)應(yīng)含義說(shuō)明 120服務(wù)在NNN時(shí)間內(nèi)可用; 125數(shù)據(jù)連接已經(jīng)打開,開始傳送數(shù)據(jù); 150文件狀態(tài)正確,正在打開數(shù)據(jù)連接; 200命令執(zhí)行正常結(jié)束; 202命令未被執(zhí)行,此站點(diǎn)不支持此命令; 211系統(tǒng)狀態(tài)或系統(tǒng)幫助信息回應(yīng); 212目錄狀態(tài)信息;
52、 214關(guān)于如何使用本服務(wù)器或特殊的非標(biāo)準(zhǔn)命令。此回復(fù)只對(duì)人有用; 220 新連接的用戶的服務(wù)已就緒; 225數(shù)據(jù)連接已打開,沒有進(jìn)行中的數(shù)據(jù)傳送; 226正在關(guān)閉數(shù)據(jù)連接。請(qǐng)求文件動(dòng)作成功結(jié)束(例如,文件傳送或終止); 227進(jìn)入被動(dòng)模式 331用戶名存在,需要輸入密碼; 350對(duì)被請(qǐng)求文件的操作需要進(jìn)一步更多的信息; 421 太多用戶,那就過會(huì)再連 ; 426連接關(guān)閉,傳送中止。 你的防火墻限制你FTP的傳輸,請(qǐng)關(guān)閉你個(gè)人電腦上的防火墻; 550請(qǐng)求操作未被執(zhí)行,文件不可用; 553 請(qǐng)求操作未被執(zhí)行。 文件名不允許;
53、 7設(shè)計(jì)心得(設(shè)計(jì)的特點(diǎn)、不足、收獲與體會(huì)) 7.1設(shè)計(jì)的特點(diǎn) 7.1.1 本次課程設(shè)計(jì)不僅可以實(shí)現(xiàn)匿名ftp服務(wù)器的訪問,還可以實(shí)現(xiàn)非匿名ftp服務(wù)器 的訪問。只要在連接界面取消選擇anonymous復(fù)選框就可以實(shí)現(xiàn)非匿名ftp服務(wù)器的訪問。 7.1.2 本次課程設(shè)計(jì)可以實(shí)現(xiàn)遠(yuǎn)程站點(diǎn)的目錄和文件結(jié)構(gòu)的瀏覽。如果是非匿名的ftp服務(wù),用戶還可以申請(qǐng)屬于自己的ftp并實(shí)現(xiàn)文件的刪除,重命名和上
54、傳操作。 7.1.3 本次課程設(shè)計(jì)是建立在tcp協(xié)議的基礎(chǔ)上的,tcp是可靠的面向連接的協(xié)議,因此當(dāng)用戶的操作無(wú)法實(shí)現(xiàn)時(shí),會(huì)提示用戶出錯(cuò),以便用戶及時(shí)的采取措施保證文件傳輸?shù)恼_。 7.2設(shè)計(jì)的不足 本次的課程設(shè)計(jì)的不足之處是不能夠?qū)崿F(xiàn)斷線的自動(dòng)重連和多站點(diǎn)同時(shí)下載。它在出現(xiàn)錯(cuò)誤的時(shí)候會(huì)提示用戶出錯(cuò),例如超時(shí),此時(shí)用戶得到了錯(cuò)誤提示后再進(jìn)行重新連接或處理。只能對(duì)一個(gè)ftp主機(jī)地址進(jìn)行文件傳輸,要實(shí)現(xiàn)多站點(diǎn)的同時(shí)下載是一個(gè)很復(fù)雜的過程。 7.3 收獲與體會(huì) 本次的課程設(shè)計(jì)讓我透徹的了解了ftp協(xié)議的工作原理,ftp文件傳輸?shù)哪J胶蚮tp文件傳輸?shù)膬煞N工作方式。學(xué)會(huì)了VB中winsock
55、的使用,并能夠通過高級(jí)語(yǔ)言編程實(shí)現(xiàn)客戶端與ftp服務(wù)器主機(jī)相連接并實(shí)現(xiàn)文件的傳輸。鞏固VB程序語(yǔ)言的應(yīng)用,這次課程設(shè)計(jì)中有很多的函數(shù)在以前的編程中都沒有遇到過,這次的課程設(shè)計(jì)起到了一個(gè)查漏補(bǔ)缺的作用,例如系統(tǒng)函數(shù)InStrRev(,,)的意思是返回某一字符串從另一字符串的右側(cè)開始算起第一次出現(xiàn)的位置,這是我通過在網(wǎng)絡(luò)上查詢知道的。 這次的課程設(shè)計(jì)使我了解到一個(gè)好的程序是要用大量的時(shí)間和不斷的思考換來(lái)的,恒心和細(xì)心是一個(gè)程序員必須具備的基本要素。同時(shí)還要積極的和別人交流,這樣才能彌補(bǔ)自身的不足。 總之,這次的課程設(shè)計(jì)使我感到了網(wǎng)絡(luò)的功能是如此強(qiáng)大并且在不斷地日益完善,我們平時(shí)只使用了網(wǎng)絡(luò)的很
56、小的一部分功能。例如:我們經(jīng)常接觸http協(xié)議,在上網(wǎng)搜集資料的時(shí)候只考慮到了以http://開頭的網(wǎng)址,其實(shí)它只是網(wǎng)絡(luò)資源里很小的一部分,很多的大學(xué),科學(xué)院所,機(jī)關(guān)部門等都對(duì)外免費(fèi)開放了自己的ftp資源,用戶可以通過訪問共享這些資源。匿名FTP使用戶有機(jī)會(huì)存取到世界上最大的信息庫(kù),這個(gè)信息庫(kù)是日積月累起來(lái)的,并且還在不斷增長(zhǎng),永不關(guān)閉,涉及到幾乎所有主題。而且,這一切是免費(fèi)的。 因此ftp對(duì)我們的吸引是巨大的。 這次課程設(shè)計(jì)激發(fā)了我對(duì)計(jì)算機(jī)網(wǎng)絡(luò)這一門課程的興趣,使我獲益良多。 8展望(該實(shí)用程序進(jìn)一步改進(jìn)擴(kuò)展的設(shè)想) 本次的課程設(shè)計(jì)只能實(shí)現(xiàn)單個(gè)FTP服務(wù)器地址的下載,如果在程序中設(shè)置多個(gè)發(fā)送進(jìn)程使信息發(fā)送到不同的ftp主機(jī)地址,那么就可以實(shí)現(xiàn)多文件的下載。 同樣該程序如果設(shè)置了計(jì)時(shí)器,當(dāng)在規(guī)定的時(shí)間內(nèi)沒有實(shí)現(xiàn)ftp主機(jī)與用戶的連接那么就可以自動(dòng)調(diào)用連接進(jìn)程重新連接,這樣就實(shí)現(xiàn)了斷線自動(dòng)重新連接并自動(dòng)恢復(fù)傳輸?shù)墓δ堋? 20
- 溫馨提示:
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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥事管理與法規(guī)楊世民第2版第一章
- 初中語(yǔ)法-形容詞和副詞
- 《公民的基本權(quán)利和義務(wù)》人教部編版道德與法治課件
- 五年級(jí)上冊(cè)音樂課件-豐收的節(jié)日(2)|人音版(簡(jiǎn)譜)最新
- 企業(yè)家商業(yè)計(jì)劃培訓(xùn)教程75275
- 員工保密意識(shí)及技能教育培訓(xùn)課件
- [精選]CAINA肖爾布拉克營(yíng)銷戰(zhàn)略規(guī)劃(PPT 174頁(yè))5799
- 教育專題:18___跨越百年的美麗
- 北魏孝文帝的改革措施
- 教育專題:兒童防拐教案1
- 數(shù)據(jù)隔離級(jí)別
- 最新2018清新簡(jiǎn)約工作匯報(bào)模板【ppt精美模板】
- 電子工藝第5章(精品)
- [精選]中化公司銷售培訓(xùn)77824
- (連云港專版)中考?xì)v史復(fù)習(xí) 第2單元 中國(guó)近代史 第9課時(shí) 抗日戰(zhàn)爭(zhēng)和人民解放戰(zhàn)爭(zhēng)的勝利課件 北師大版