ftp 客戶端實現(1)--FTP格式
阿新 • • 發佈:2019-02-08
檔案傳輸協議(FTP:File Transfer Protocol)使得主機間可以共享檔案。 FTP 使用 TCP 生成一個虛擬連線用於控制資訊,然後再生成一個單獨的 TCP 連線用於資料傳輸。控制連線使用類似 TELNET 協議在主機間交換命令和訊息。
FTP 的主要功能如下:
提供檔案的共享(計算機程式 / 資料); 支援間接使用遠端計算機; 使使用者不因各類主機檔案儲存器系統的差異而受影響; 可靠且有效的傳輸資料。FTP ,儘管可以直接被終端使用者使用,但其應用主要還是通過程式實現。
FTP 控制幀即指 TELNET 交換資訊,包含 TELNET 命令和選項。然而,大多數 FTP 控制幀是簡單的 ASCII 文字,可以分為 FTP 命令或 FTP 訊息。 FTP 訊息是對 FTP 命令的響應,它由帶有解釋文字的應答程式碼構成。
協議結構
命令 | 描述 |
ABOR | 中斷資料連線程式 |
ACCT <account> | 系統特權帳號 |
ALLO <bytes> | 為伺服器上的檔案儲存器分配位元組 |
APPE <filename> | 新增檔案到伺服器同名檔案 |
CDUP <dir path> | 改變伺服器上的父目錄 |
CWD <dir path> | 改變伺服器上的工作目錄 |
DELE <filename> | 刪除伺服器上的指定檔案 |
HELP <command> | 返回指定命令資訊 |
LIST <name> | 如果是檔名列出檔案資訊,如果是目錄則列出檔案列表 |
MODE <mode> | 傳輸模式(S=流模式,B=塊模式,C=壓縮模式) |
MKD <directory> | 在伺服器上建立指定目錄 |
NLST <directory> | 列出指定目錄內容 |
NOOP | 無動作,除了來自伺服器上的承認 |
PASS <password> | 系統登入密碼 |
PASV | 請求伺服器等待資料連線 |
PORT <address> | IP 地址和兩位元組的埠 ID |
PWD | 顯示當前工作目錄 |
QUIT | 從 FTP 伺服器上退出登入 |
REIN | 重新初始化登入狀態連線 |
REST <offset> | 由特定偏移量重啟檔案傳遞 |
RETR <filename> | 從伺服器上找回(複製)檔案 |
RMD <directory> | 在伺服器上刪除指定目錄 |
RNFR <old path> | 對舊路徑重新命名 |
RNTO <new path> | 對新路徑重新命名 |
SITE <params> | 由伺服器提供的站點特殊引數 |
SMNT <pathname> | 掛載指定檔案結構 |
STAT <directory> | 在當前程式或目錄上返回資訊 |
STOR <filename> | 儲存(複製)檔案到伺服器上 |
STOU <filename> | 儲存檔案到伺服器名稱上 |
STRU <type> | 資料結構(F=檔案,R=記錄,P=頁面) |
SYST | 返回伺服器使用的作業系統 |
TYPE <data type> | 資料型別(A=ASCII,E=EBCDIC,I=binary) |
USER <username>> | 系統登入的使用者名稱 |
標準 FTP 資訊如下:
響應程式碼 | 解釋說明 |
110 | 新檔案指示器上的重啟標記 |
120 | 伺服器準備就緒的時間(分鐘數) |
125 | 開啟資料連線,開始傳輸 |
150 | 開啟連線 |
200 | 成功 |
202 | 命令沒有執行 |
211 | 系統狀態回覆 |
212 | 目錄狀態回覆 |
213 | 檔案狀態回覆 |
214 | 幫助資訊回覆 |
215 | 系統型別回覆 |
220 | 服務就緒 |
221 | 退出網路 |
225 | 開啟資料連線 |
226 | 結束資料連線 |
227 | 進入被動模式(IP 地址、ID 埠) |
230 | 登入因特網 |
250 | 檔案行為完成 |
257 | 路徑名建立 |
331 | 要求密碼 |
332 | 要求帳號 |
350 | 檔案行為暫停 |
421 | 服務關閉 |
425 | 無法開啟資料連線 |
426 | 結束連線 |
450 | 檔案不可用 |
451 | 遇到本地錯誤 |
452 | 磁碟空間不足 |
500 | 無效命令 |
501 | 錯誤引數 |
502 | 命令沒有執行 |
503 | 錯誤指令序列 |
504 | 無效命令引數 |
530 | 未登入網路 |
532 | 儲存檔案需要帳號 |
550 | 檔案不可用 |
551 | 不知道的頁型別 |
552 | 超過儲存分配 |
553 | 檔名不允許 |