国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Ftp客戶端編程
關(guān)于Ftp協(xié)議;

Ftp命令;

Ftp返回值;

Ftp編程結(jié)構(gòu);



關(guān)于Ftp協(xié)議:

關(guān)于Ftp協(xié)議,我想都大概了解,所以不做說明了。以下是RPC959的介紹:

The objectives of FTP are 1) to promote sharing of files (computer

programs and/or data), 2) to encourage indirect or implicit (via

programs) use of remote computers, 3) to shield a user from

variations in file storage systems among hosts, and 4) to transfer

data reliably and efficiently. FTP, though usable directly by a user

at a terminal, is designed mainly for use by programs.



Ftp命令:

也許很多人都用過Ftp命令,但是可能也有許多人和我曾經(jīng)犯一樣的錯誤,錯認了Ftp命令。我原來在win2000的控制臺下打上Ftp,然后進入了Ftp提示符下,接著我用上了許多符有“windows”特色的命令,如“dir”,“cd”,看到它按照自己的想法在運行,以為自己便掌握了Ftp命令了。我非常有信心的打開編程工具,寫一個socket,然后向ftp服務(wù)器連接了。當然,服務(wù)器返回了信息提示是連接成功了,我便開始發(fā)送剛才用過的一些命令,可返回的信息大多都是“500 'xx': command not understood”。 最后,我發(fā)送了help命令,返回的結(jié)果讓我驚異不已,里面的命令大多我都沒用過。原來這些才是真正的Ftp命令。Windows里面的只是Ftp的客戶端工具,里面的命令根本不是Ftp命令。網(wǎng)上有許多資料里也是把windows里Ftp客戶端的命令和Ftp命令混在一起。真正的Ftp命令應(yīng)參考RFC959文檔中的說明(其實一些Ftp工具如CuteFtp里也把命令顯示出來)。其中經(jīng)常被使用的命令包括如下:

ABOR:中止;

CWD 目錄名:改變現(xiàn)有目錄;

CDUP:返回到父級目錄;

REIN:重新初始化服務(wù)器狀態(tài);

QUIT:退出;

PORT:設(shè)置數(shù)據(jù)傳輸端口;

PASV:轉(zhuǎn)為被動方式

TYPE A/I:傳輸方式;

MODE S/B/C:傳輸方式?;

RETR 文件名:下載文件;

STOR 文件名:上傳文件;

APPEND 追加本地文件到服務(wù)器;

RNFR:修改原文件名(修改之前的文件名)

RNTO:修改后的文件名;

DELE 文件名:刪除文件;

RMD 目錄夾:刪除文件夾;

MKD 目錄:新建目錄;

PWD 當前工作目錄;

LIST:列出該目錄中的項目;

SYST:查看服務(wù)器操作系統(tǒng)信息;

STAT查看Ftp參數(shù)狀態(tài);



Ftp命令的返回值:

每一個Ftp發(fā)送之后,F(xiàn)tp服務(wù)器都會返回一個字符串,其中包括一個返回代碼和一串說明信息。這個返回碼主要是用于判斷命令是否被成功執(zhí)行了。除此之外,還有一個非常重要的命令的返回。當發(fā)送PASV之后,返回“227 Entering Passive Mode (127,0,0,1,4,18)”。這意味著在服務(wù)器上有一個端口被開放,他將為我們后面接著的數(shù)據(jù)傳輸作好準備,但是我們?nèi)绾沃涝摱丝谔柲?,就?127,0,0,1,4,18)中,前面四位指服務(wù)器的地址,關(guān)鍵是最后兩位,將最后第二位乘256再加上最后一位的值就是我們的端口號,也就是4*256+18。取得端口號之后我們就可以用socket連接到這里。這為我們后面的工作作好準備了,因為我們的取得列表,上傳,下載文件都要依靠它來實現(xiàn)。常用的返回如下:

125 Data connection already open; Transfer starting.

226 Transfer complete.

227 Entering Passive Mode (127,0,0,1,4,18).

230 User xxxxx logged in.

331 Password required for xxxxx.

425 Can’t open data connection.

226 Closing data connection.



Ftp客戶端編程結(jié)構(gòu):

前面已提到了Ftp命令及其響應(yīng)信息。其實我們做Ftp客戶端工具只不過是用一個winsocket連接上Ftp服務(wù)器,然后象其發(fā)送命令。在這個過程中,我們依靠發(fā)送——響應(yīng)的機制。即發(fā)送Ftp命令——接收返回的響應(yīng)信息——分析該信息——執(zhí)行相關(guān)操作——發(fā)送下一條命令。在一般意義上,有一個socket用來連接Ftp服務(wù)器的相關(guān)端口(如默認的21),它負責Ftp命令的發(fā)送和接收返回的響應(yīng)信息。一些操作如“進入目錄”,“刪除文件”,依靠這個socket發(fā)送一條命令就可完成了。然而對于有數(shù)據(jù)傳輸?shù)牟僮?,主要是顯示遠端目錄列表,上傳、下載文件,我們不得不依靠另一個socket來完成。在進行這種操作之前,必須發(fā)送PASV命令,它返回了227開頭的信息,在括號中有以逗號隔開的六個數(shù)字,前四個指服務(wù)器的地址,關(guān)鍵是最后兩個,將倒數(shù)第二個乘256再加上最后一個數(shù)字,其結(jié)果就是Ftp服務(wù)器開放的用于下一條命令來進行數(shù)據(jù)傳輸?shù)亩丝?。如我們得?27 Entering Passive Mode (127,0,0,1,4,18),那么端口號是4*256+18=1042。我們用一個socket來連接這個端口,之后,我們可根據(jù)具體的操作(顯示目錄LIST,上傳文件STOR,下載RETR)來發(fā)送命令。返回的響應(yīng)代碼為125開頭,也就是連接打開了,可以開始傳輸數(shù)據(jù),這時就可用socket的發(fā)送或接收方法來傳輸數(shù)據(jù)。完成之后,服務(wù)器會返回代碼226 Transfer complete,表明數(shù)據(jù)傳輸完成。值得注意的是,我們最好不要一次發(fā)送多條命令,例如我們要回到上層目錄并且顯示這個目錄,我們得發(fā)送CDUP,PASV,LIST,我們不能一下子發(fā)送:CDUP\r\n, PASV\r\n, LIST\r\n。 而是發(fā)送完CDUP之后等待其響應(yīng)代碼,然后再發(fā)送后面一條。當PASV返回之后,我們打開另一個socket連接到相關(guān)端口上。然后發(fā)送LIST,返回125之后在開始接收數(shù)據(jù),最后返回226表明完成。對于上傳和下載也是差不多的過程(下載之前要先取得文件的大?。?



參考資料:

.NET網(wǎng)絡(luò)高級編程:清華大學出版社,Andrew Krowczyk;

RFC959;

VisualBasic.NET網(wǎng)絡(luò)編程學習捷徑;
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows命令行使用FTP
利用Winsock控件實現(xiàn)FTP編程
serv-u安全配置
Linux環(huán)境搭建FTP服務(wù)器與Python實現(xiàn)FTP客戶端的交互介紹
怎么向FTP服務(wù)器發(fā)送查看目錄的命令,并拿到返回的結(jié)果后自己做解析
FTP實現(xiàn)斷點續(xù)傳
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服