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.

FTP 서버로부터 응답은 connect():

int responseFTP = clientFTP.getReplyCode(); 
if (!reponseFTP.isPositiveCompletion(replyCode)) {
// 작업이 실패했습니다. 서버가
//연결을 거부하거나
반환 작업을 거부합니다.
}
각 메서드 호출 후 서버는 메시지를 반환합니다. 다음 메소드는 서버의 메시지를 표시합니다.

private static void serverresponse(FTPClient ftpClient) {
String[] responses = ftpClient.getReplyStrings();
if (답변 != 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 (답변 != null & & answers.length > 0) {
for (문자열 응답: 응답) {
System.out.println("서버: " + 응답);
}
}
}

public static void main(String[] args) {
문자열 server = "serveraddress";
int 포트 = 21;
문자열 username = "username";
문자열 비밀번호 = "비밀번호";
FTPClient ftpClient = 새로운 FTPClient();
{
ftpClient.connect(서버, 포트);
serverresponse(ftpClient);
int 응답 = ftpClient.getReplyCode();
if (! FTPReply.isPositiveCompletion(response)) {
System.out.println("작업이 실패했습니다. 서버 응답: " + 응답);
반환;
}
부울 상태 = ftpClient.login(사용자 이름, 비밀번호);
serverresponse(ftpClient);
if (!state) {
System.out.println("서버에 접속할 수 없습니다.");
반환;
} else {
System.out.println("식별 성공");
}
} catch (IOException ex) {
System.out.println("연결 중 오류가 감지되었습니다.");
예: printStackTrace();
}
}
}
컴파일 및 실행:

SERVER: 220---------- Pure-FTPd에 오신 것을 환영합니다. [privsep] ----------
SERVER: 220-500개 중 31번 사용자입니다.
SERVER: 220-현지 시간은 이제 06:02입니다. 서버 포트: 21.
SERVER: 220-이것은 개인 시스템입니다 - 익명 로그인 없음
SERVER: 220 3분 동안 사용하지 않으면 연결이 끊어집니다.
SERVER: 230-OK. 현재 제한된 디렉토리는 /
SERVER: 230-100개 파일 사용(1%) - 인증됨: 10000개 files
SERVER: 230 5217KB 사용(0%) - 인증: 1536000Kb
Successful identification