この記事では、主に Java 言語で単純な FTP ソフトウェアを実装する最初の記事を紹介します。FTP プロトコルを分析しており、興味のある方は、
FTP ( File Transfer Protocol) ファイル転送プロトコルを参照してください。 FTP クライアントを介してリモート FTP サーバーからローカル コンピューターにファイルをコピーすることをダウンロードと呼び、ローカル コンピューターからリモート FTP サーバーにファイルをコピーすることを アップロード と呼びます。アップロードとダウンロードは、FTP で最もよく使用される 2 つの機能です。 FTP は、送信のトランスポート層で TCP プロトコルを使用するため、クライアントとサーバー間の接続は信頼性が高く、接続指向であり、データ送信の信頼性が保証されます。 FTP の目標は次のとおりです:
ファイル共有を改善する
コンピュータの間接的なリモート制御を提供する
ホスト間のファイル ストレージ システムの違いによるユーザー変更を回避する
信頼性と効率を提供するデータ送信用
FTPプロトコルモデル下の図に示すように
FTPはTCPサービスを使用し、2つの接続が必要です。 1 つはデータ送信に使用されるデータ接続で、通常はポート 21 を使用します。もう 1 つは、制御情報 (コマンドと応答) の送信に使用される制御接続で、通常はポート 20 を使用します。制御接続で送信する必要があるのは、コマンド行や応答コード行などの制御情報のみですが、データ接続では、テキスト ファイル、グラフィック ファイル、アプリケーションなどのさまざまな種類のデータを送信する必要があります。
FTP プロトコル モデルで使用される対話型要素には、ユーザー
、USERPI、UPTP、SPI、および SDTP が含まれます。その説明を以下の図に示します
FTP 送信には 2 つの方法があります: テキスト。送信モードとバイナリデータ送信モード。テキストモードはASCIIモードとも呼ばれ、バイナリモードはバイナリモードとも呼ばれます。
FTP サービスは、通常の FTP サービスと匿名 FTP サービスの 2 種類に分類されます。
一般的に使用される FTP コマンドは次のとおりです:
1) アクセスコマンド
USER: ユーザー名を指定します
ABOR: データ接続プログラムを異常中断します
QUIT : システムログアウトから
REIN: 再初期化
2) ファイル管理コマンド
CWD: サーバー上の作業ディレクトリを指定ディレクトリに変更
DELE: リクエスト
サーバー上のファイルを削除します。 LIST: サブディレクトリまたはファイルを一覧表示します MKD: サーバー上に新しいディレクトリを作成する要求
PWD: 現在の作業ディレクトリを表示します
RMD: 指定されたディレクトリをサーバーから削除します
3) データフォーマットコマンド
TYPE: ファイル タイプを定義します。合計 4 つのタイプがあり、パラメータは A、E、I、L の 4 種類で、それぞれ ASCII、EBCDIC、IMAGB、LOCAL タイプに対応します。
MODE: 送信方法を定義します
4) ポート定義コマンド
PASV: サーバーはポートを選択し、
このポートを使用してアクティブオープンを送信します PORT: クライアントはポートを選択し、サーバーはこのポートを使用して作成し、アクティブに開きます
5) ファイル転送コマンド
RETR:
、ファイルはサーバーからクライアントSTORに転送されます: ファイルを保存、ファイルはクライアントから転送されます サーバーに送信されます STAT: ファイルの
ステータスを返します
ALLOO: サーバー上のファイルにストレージスペースを割り当てます
6) その他のコマンド
HELP: サーバーに情報を問い合わせます
SITE: 特定の場所に対するコマンドを指定します
SYST: サーバーが使用しているオペレーティング システムを問い合わせます
クライアントが FTP コマンドを送信した後、サーバーは応答コードを返します。応答コードは 3 桁のコードで表されます:
はコマンドのステータスを定義します。
1 は、サーバーが情報を正しく受信したが、まだ処理していないことを意味します。
3 は、サーバーが情報を正しく受信し、処理していることを意味します。
4 は、情報が一時的に間違っていることを意味します。
5 は、情報が永久に間違っていることを意味します。
は、応答タイプの分類です。
0 は構文を意味します。
1 はシステムのステータスと情報を表します。
2は接続状態を示します。
3はユーザー認証に関する情報を表します。
4は不特定を意味します。
5 は、ファイルシステムに関連する情報を表します。
3 番目の番号 には、さらに詳しい情報が含まれています。
以上がJava言語で実装した簡単FTPソフト - FTPプロトコルの詳しい解説(1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。