1. 一台ftp客戶端與一台ftp伺服器通過一台二層交換機相連,它們之間具體的數據傳輸過程是怎樣的,重點是ftp
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
1.ASCII傳輸方式:假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調整文件的內容以便於把文件解釋成另外那台計算機存儲文本文件的格式。
但是常常有這樣的情況,用戶正在傳輸的文件包含的不是文本文件,它們可能是程序,資料庫,字處理文件或者壓縮文件(盡管字處理文件包含的大部分是文本,其中也包含有指示頁尺寸,字型檔等信息的非列印字元)。在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。
2.二進制傳輸模式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執行文件到Windows系統,在對方系統上,此文件不能執行。
如果你在ASCII方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字元的第一有效位無意義,因為ASCII字元組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進制方式對文本文件和數據文件都是有效的。
5. FTP的工作方式
FTP支持兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
下面介紹一個這兩種方式的工作原理:
Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,伺服器端通過自己的TCP 20埠連接至客戶端的指定埠發送數據。 FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式在建立控制通道的時候和Standard模式類似,但建立連接後發送的不是Port命令,而是Pasv命令。FTP伺服器收到Pasv命令後,隨機打開一個高端埠(埠號大於1024)並且通知客戶端在這個埠上傳送數據的請求,客戶端連接FTP伺服器此埠,然後FTP伺服器將通過這個埠進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。
很多防火牆在設置的時候都是不允許接受外部發起的連接的,所以許多位於防火牆後或內網的FTP伺服器不支持PASV模式,因為客戶端無法穿過防火牆打開FTP伺服器的高端埠;而許多內網的客戶端不能用PORT模式登陸FTP伺服器,因為從伺服器的TCP 20無法和內部網路的客戶端建立一個新的連接,造成無法工作。
簡單上傳下載實例(/*....*/為注釋):
先假設有一FTP伺服器,FTP伺服器:qint.ithot.net,用戶名:username 密碼:user1234。在本地電腦D:盤創建一個文件夾"qint"。將要上傳的文件復制到d:\qint里。通過FTP命令將文件從本地上傳,從伺服器下載的步驟如下:
1.「開始」-「運行」-輸入「FTP」
2.open qint.ithot.net
/*這一步可以與第一步合並,在「運行」里直接輸入"ftp qint.ithot.net"。如果你的FTP伺服器不是用的21默認埠,假如埠是2121,那麼此步的命令應在後面空格加2121,即「open qint.ithot.net 2121」*/
3.username
/*提示你輸入用戶名*/
4.user1234
/*提示你輸入密碼,密碼不回顯,打完密碼後回車即可。如果你的密碼輸入錯誤,將不會提示你重新輸入,這時你要鍵入「user」命令,將會出現第三步,你可以重新輸入用戶名和密碼。*/
5.dir
/*你成功登陸後就可以用dir查看命令查看FTP伺服器中的文件及目錄,用ls命令只可以查看文件。*/
6.mkdir qint
/*在FTP伺服器上根目錄下建立qint目錄。*/
7.cd qint
/*進入目錄qint,用「cd 你的目錄名」可以進入當前目錄的下一級目錄,這跟DOS一樣。*/
8.bin
/*採用二進制傳輸。如果你要上傳下載,這一步很重要,不先執行這個命令,上傳下載會很慢。*/
9.lcd d:\qint
/*定位本地默認文件夾,在前面我事先在D:盤創建的。*/
10.!dir
/*查看本地文件夾中的文件及目錄*/
11.put i001.jpg
/*將當前目錄(d:\qint)中的文件i001.jpg上傳到FTP伺服器默認目錄。可以用"mput *.*"將所有文件上傳到FTP伺服器上。*/
12.get d123.jpg
/*將FTP伺服器默認目錄中的文件d123.jpg下載到當前目錄下(d:\qint)。可以用"mget *.*"將所有文件下載到d:\qint*/
13.delete *.*
/*刪除目錄qint中的所有文件。*/
14.cd ..
/*返回至上一級目錄,即根目錄。返回上一級目錄用「cd ..」要注意,中間有空格。返回根目錄用「cd \」。*/
15.mrdir qint
/*刪除目錄qint。刪除目錄,在此目錄下不能有文件及目錄,不然將無法刪除。*/
16.bye
/*退出FTP伺服器*/
上傳下載時特別要注意伺服器及本地電腦的當前目錄,文件是從哪裡到哪裡的問題。查看FTP伺服器的當前目錄命令為pwd,可以用cd命令定位伺服器的目錄。可以用lcd命令定位本地電腦的目錄。以上實例應用到了採用FTP命令行方式上傳下載的最常用命令,你還可以用命令「?」查看更多的命令。
2. 基於linux的小型遠程FTP服務系統的設計
太多了 沒時間看 得工作 時間不允許 哥們還是自己寫吧
3. FTP客戶端程序設計--畢業論文
最簡單就是用windows自帶的iis裡面的ftp伺服器。
4. 求一個ftp客戶端設計程序,1)要求實現的程序為圖形化界面(如圖3-14所示),可以輸入FTP服務的相關信息(
可以參考下開源的FileZilla
補充:
既然是廢話,那也不需要多說了
5. FTP實驗報告。。求幫忙完成
其中客戶端軟體命名為myftp,伺服器軟體命名為ftpserver。具體功能需求如下。(一) 伺服器1) 啟動方式。執行ftpserver [IP地址] port啟動FTP服務。其中IP地址為可選項。若不提供伺服器IP地址,FTP服務將自動綁定到本地網路的IP。2) 用戶認證與許可權管理。為FTP客戶提供基於用戶名/密碼認證的服務模式,只有授權用戶才可以訪問FTP服務。與此同時,對文件/目錄的訪問,也實現基於授權的訪問機制,即只有授權用戶才可以對指定文件進行讀寫操作。用戶只有在具備寫許可權操作的目錄上才能上傳文件。(可直接集成Linux伺服器系統的用戶管理)3) 並行執行功能。為提高系統性能,伺服器將採用多進程/線程技術響應客戶請求。當客戶通過身份驗證後,伺服器將創建一個新的進程/線程來響應用戶請求,提供服務。4) 伺服器支持的客戶文件操作。登錄成功後,客戶可在伺服器執行以下操作:創建/刪除目錄(mkdir/rmdir)、顯示當前路徑(pwd)、切換目錄(cd)、查看當前目錄下的所有文件(ls)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。5) 服務傳輸模式。支持二進制(默認)及ASCII傳輸模式。用戶可通過執行binary/ascii命令切換傳輸模式。6) 站點計數與用戶管理功能。統計伺服器站點的當前活動用戶數及自運行以來的訪客總數。系統管理員可在伺服器軟體運行終端窗口執行以下命令:A)count current:當前活動用戶數B) count all:顯示系統訪客總數C) list:顯示當前在線的所有用戶的用戶名D)kill username:強制刪除某個用戶。E) quit:關閉ftp伺服器軟體。7) 其他功能。對用戶錯誤輸入提供容錯保護,即當用戶輸入錯誤命令時,需向客戶端返回出錯提示信息。8) 可選功能(加分)。A)在伺服器端為訪問頻率最高的文件建立緩沖區(可採用共享內存技術),以便提高伺服器端的性能。 B) 實現斷點續傳功能。(二) 客戶端1、 登錄管理。客戶端在shell中輸入myftp username:passwd@ftp-server-ip:ftp-server-port登錄ftpserver。若通過身份驗證,伺服器將向客戶回顯"you are client #."(#為第幾位用戶)並顯示ftp命令輸入提示符myftp>;否則顯示"username doesn't exist or password is error!"。2、 文件操作命令。在客戶端執行基本文件操作:創建/刪除目錄(lmkdir/lrmdir)、顯示當前路徑(lpwd)、切換目錄(lcd)、查看當前目錄下的所有文件(dir)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。3、 退出系統。用戶執行」quit」斷開連接,結束當前FTP會話。(三) 作業提交要求1、 將客戶端源碼和伺服器源碼分別放入命名為ftpclient和ftpserver文件夾中,連同試驗報告打包,命名格式為:學號1#學號2...。2、 作業提交截止時間為下學期第一周的周五。 四、設計思路和流程圖(包括主要數據結構及其說明、測試數據的設計及測試結果分析) 五、實驗體會(包括實驗中遇到的問題及解決過程、產生的錯誤及原因分析) 六、程序清單(包括源程序、makefile、readme)
6. 怎麼理解這個畢業論文的題目《安全FTP系統的設計與實現》
關於這篇論文,我個人認為只要把你對這個系統的設計理念,及所謂的架設、許可權進行一個明了的闡述《必須講明你設計的用意》,再結合實際的需要(即實現、落實後所涉及的各方面的利弊);發展前景等等…最後進行一下總結即可。
7. ftp客戶端 論文摘要怎麼寫啊!!急
FTP伺服器的編程及應用(jsj139)
完成一個簡單FTP伺服器的編程及應用。實現的功能包括:上傳、
下載、選擇數據傳輸模式、改變目錄等,並給出相應的提示。
目 錄
引言······································1
正文······································2
第一章 FTP協議分析·······························2
1.1FTP工作原理·································2
1.1.1基本名詞································· 2
1.1.2 FTP的工作原理圖····························· 3
1.2FTP標准命令································ 4
1.3FTP標准回答································ 5
第二章 FTP程序設計·······························6
2.1任務要求·································· 6
2.1.1設計題目································· 6
2.1.2設計目的································· 6
2.2程序模塊化設計································6
2.2.1程序設計思想································6
2.2.2重疊模型································· 6
2.2.3程序流程圖································ 9
第三章 詳細設計································ 10
3.1main( )函數································ 10
3.2工作線程函數設計······························ 14
3.2.1工作線程程序流程圖···························· 14
3.2.2工作線程具體設計····························· 15
3.3命令處理函數設計······························ 17
3.4其他函數·································· 25
第四章 結論·································· 26
參考文獻····································27
附錄······································28
致謝······································62
摘 要
本程序主要用於簡單伺服器的管理,包括文件的上傳、下載、列出目錄、改變目錄、改變傳輸方式等功能。通過該程序的開發,基本上實現了一個FTP伺服器的功能,能夠解釋一般的FTP命令,並且符合RFC959規范。
本程序採用VC++6.0作為開發工具,設計步驟採用自頂向下的方法。
關鍵詞:上傳、下載、列出目錄、改變目錄、改變傳輸方式、FTP伺服器
引 言
從根本上說,FTP就是在網路中各種不同的計算機之間按照TCP/IP協議來傳輸文件。FTP採用的是現在流行的Client/Server模式,由FTP客戶端和FTP伺服器端程序組成。通常伺服器端是遠程端點,用戶可以通過Internet網路連接到遠程的FTP伺服器站點。伺服器的功能是主要的。只有當FTP伺服器支持各種協議和指令時,才能夠開發相應的客戶端程序。
本程序支持最基本的FTP命令。
僅供參考,請自借鑒。
希望對您有幫助。