1. 程式人生 > >ftp 客戶端實現(1)--FTP格式

ftp 客戶端實現(1)--FTP格式

檔案傳輸協議(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 檔名不允許