程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java語言實現簡單FTP軟件 FTP協議分析(1)

Java語言實現簡單FTP軟件 FTP協議分析(1)

編輯:關於JAVA

Java語言實現簡單FTP軟件 FTP協議分析(1)。本站提示廣大學習愛好者:(Java語言實現簡單FTP軟件 FTP協議分析(1))文章只能為提供參考,不一定能成為您想要的結果。以下是Java語言實現簡單FTP軟件 FTP協議分析(1)正文


FTP(File Transfer Protocol)就是文件傳輸協議。通過FTP客戶端從遠程FTP服務器上拷貝文件到本地計算機稱為下載,將本地計算機上的文件復制到遠程FTP服務器上稱為上傳,上傳和下載是FTP最常用的兩個功能。FTP使用傳輸層的TCP協議進行傳輸,因此客戶端與服務器之間的連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。FTP的目標有以下目標: 

提高文件的共享性 提供非直接地遠程操縱計算機 避免用戶因主機之間的文件存儲系統的差異而導致的變化 為數據的傳送提供可靠性和高效性

FTP協議模型如下圖所示


FTP使用TCP的服務,它需要兩條連接。一條是數據連接用於數據傳送,一般使用端口21,而另一條是控制連接用於傳送控制信息(命令和響應),一般使用端口20。控制連接需要傳送的只是控制信息,如一行命令或一行應答碼,而數據連接需要傳送的數據類型繁雜,如文本文件、圖形文件、應用程序等等。

FTP協議模型中使用到的交互元素包括用戶接口、USERPI、UPTP、SPI、SDTP的說明如下圖所示


FTP傳輸有兩種方式:文本傳輸模式和二進制數據傳輸模式。其中文本模式又叫ASCII模式,二進制模式又叫Binary模式。

FTP服務分為普通FTP與匿名FTP服務兩種類型。

常用FTP的命令有:

1) 接入命令

USER:指明用戶名
PASS:指明與用戶名對應的密碼
ABOR:  異常中斷數據連接程序
QUIT:從系統注銷
REIN:重新初始化

2) 文件管理命令

CWD: 改變服務器上的工作目錄到指定目錄
CDUP:  改變服務器上的工作目錄到父目錄
DELE:請求刪除服務器上的文件。
LIST:列出子目錄或文件
MKD:請求在服務器上新建一個目錄
PWD:  顯示當前工作目錄
RMD:  從服務器上刪除指定目錄

3) 數據格式化命令

TYPE:  定義文件類型,共有四種類型,所帶參數也有四種:A、E 、I 、L分別對應ASCII,EBCDIC,IMAGB和LOCAL類型。
STRU: 定義數據的組織
MODE: 定義傳輸方式

4) 端口定義命令

PASV:服務器選擇端口,客戶端使用這個端口發送主動打開
PORT: 客戶端選擇端口,服務器使用這個端口創建主動打開

5) 文件傳送命令

RETR:讀取文件,文件從服務器端傳送到客戶端
STOR:存放文件,文件從客戶端傳送到服務器端
STAT: 返回文件的狀態
ALLOO: 在服務器為文件分配存儲空間

6) 雜項命令

HELP: 詢問服務器的信息
NOOP: 檢查服務器是否工作
SITE: 指定特定場所的命令
SYST: 詢問服務器使用的操作系統

客戶端發送 FTP 命令後,服務器返回響應碼。響應碼用三位數字編碼表示:

第一個數字定義命令的狀態。

1 表示服務器正確接收信息,還未處理。
2 表示服務器已經正確處理信息。
3 表示服務器正確接收信息,正在處理。
4 表示信息暫時錯誤。
5 表示信息永久錯誤。 

第二個數字是響應類型的分類。

0 表示語法。
1 表示系統狀態和信息。
2 表示連接狀態。
3 表示與用戶認證有關的信息。
4 表示未指明。
5 表示與文件系統有關的信息。

第三個數字提供了更加附加信息。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved