JavaでのFTPサーバーへの接続

この記事では、Apache Commons Net を使用して FTP サーバーに接続し、自分自身を識別する方法を示す Java コード例を実装します。commons-net.jarファイルがプロジェクトのクラスパスに存在することを確認してください.

net.ftp.FTPClient は、FTP プロトコルを介してサーバーと対話するために必要な基盤を提供します。サーバーに接続するには、次の方法を使用します:

void connect(String server, int port): サーバーはホスト名または IP アドレスで設定でき、ポートは特定のアプリケーションの着信接続をリッスンするために使用される番号です。FTP はポート 21.

接続後、次の方法で自分自身を識別します:

boolean login(String username, String password): このメソッドは true、そうでない場合は false.

connect():

int responseFTP = clientFTP.getReplyCode();
if (!reponseFTP.isPositiveCompletion(replyCode)) {
// 操作は失敗しました。サーバーは
//接続を拒否するか、
戻り操作を拒否します。
}
各メソッド呼び出しの後、サーバーはメッセージを返します。次のメソッドは、サーバーからのメッセージを表示します:

private static void serverresponse(FTPClient ftpClient) {
String[] responses = ftpClient.getReplyStrings();
if (answers != null &&answers.length >0) {
for (文字列応答: 応答) {
System.out.println("サーバー: " + 応答);
}
}
}
ログイン、識別、検証を含む完全なコードは次のとおりです:

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTPConnectionLogin {

private static void serverresponse(FTPClient ftpClient) {
String[] responses = ftpClient.getReplyStrings();
if (answers != null &&answers.length >0) {
for (文字列応答: 応答) {
System.out.println("サーバー: " + 応答);
}
}
}

public static void main(String[] args) {
String server = "serveraddress";
int ポート = 21;
文字列 username = "username";
文字列 password = "password";
FTPClient ftpClient = new FTPClient();
{
ftpClient.connect(server, port);
serverresponse(ftpClient);
int response = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(response)) {
System.out.println("操作に失敗しました。サーバーの回答: " + answer);
return;
}
boolean status = ftpClient.login(username, password);
serverresponse(ftpClient);
if (!state) {
System.out.println("サーバーにアクセスできません");
return;
} else {
System.out.println("識別に成功しました");
}
} catch (IOException ex) {
System.out.println("接続中のエラーが検出されました");
例:printStackTrace();
}
}
}
コンパイルと実行:

SERVER: 220---------- Pure FTPd [privsep] へようこそ ----------
SERVER: 220-You are user number 31 of 500 allowed.
SERVER: 220-Local time is now 06:02.サーバーポート:21.
SERVER:220-これはプライベートシステムです-匿名ログインなし
SERVER:220非アクティブの3分間後に切断されます.
SERVER:230-OK。現在の制限ディレクトリは /
SERVER: 230-100 個のファイルを使用 (1%) - authorized: 10000 files
SERVER: 230 5217 Kbytes used (0%) - authorized: 1536000 Kb
Successful identification