Kiểm tra kết nối Server FTP Java Socket

Viết chương trình đơn giản thực hiện kết nối với Server FTP java socket.

Xem thêm:

cách cài đặt FTP Server trên Windows Server 2022

cách cài Window Server 2022 trên VMware chi tiết, đầy đủ nhất.

1. Mô tả bài toán

Đề bài: Viết chương trình FTP Client thực hiện trao đổi dữ liệu giữa Client và Server như sau:

– Đăng nhập vào 1 máy chủ (Tài khoản và mật khẩu cho trước).

– Kiểm tra 1 số thông tin đăng nhập phía server và trả lại thông báo về client:

  • Tài khoản không được để trống.
  • Mật khẩu phải lớn hơn 6 ký tự.

2. Xây dựng chương trình

Để kết nối và thực hiện đăng nhập vào một máy chủ FTP bằng Java, sử dụng thư viện Apache Commons Net. Dưới đây là mô tả chi tiết:

  1. Import các lớp cần thiết từ thư viện Apache Commons Net.
  2. Định nghĩa lớp ConnectFTP chứa hàm main là hàm chính thực thi chương trình.
  3. Khai báo và khởi tạo các hằng số static cho địa chỉ IP của máy chủ FTP (FTP_SERVER_IP), cổng của máy chủ (FTP_SERVER_PORT), tên đăng nhập (FTP_SERVER_Username), và mật khẩu (FTP_SERVER_Password).
  4. Trong hàm main:
    • Tạo một đối tượng FTPClient.
    • Kết nối tới máy chủ FTP sử dụng phương thức connect với địa chỉ IP và cổng đã được cung cấp.
    • Hiển thị câu trả lời từ máy chủ bằng cách gọi hàm showServerReply.
    • Kiểm tra mã phản hồi từ máy chủ, nếu không phải là “Positive Completion” (mã 200-299) thì in ra thông báo lỗi và thoát.
    • Thực hiện đăng nhập vào máy chủ FTP bằng cách gọi phương thức login với tên đăng nhập và mật khẩu đã được cung cấp.
    • Hiển thị câu trả lời từ máy chủ sau khi đăng nhập.
    • Nếu đăng nhập thành công, in ra “Login Successful”, ngược lại in ra “Login Fail”.
    • Bắt các ngoại lệ có thể xảy ra trong quá trình kết nối hoặc đăng nhập và in ra thông báo lỗi.
  5. Định nghĩa phương thức showServerReply để hiển thị câu trả lời từ máy chủ FTP, đảm bảo rằng thông điệp được hiển thị đúng cách.

Thư viện Apache Commons Net: https://commons.apache.org/proper/commons-net/download_net.cgi

Video hướng dẫn chi tiết:

3. Code tham khảo

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class ConnectFTP {

    public static final String FTP_SERVER_IP = "192.168.30.140";
    public static final int FTP_SERVER_PORT = 21;
    public static final String FTP_SERVER_Username = "user1";
    public static final String FTP_SERVER_Password = "P@ssword";

    public static void main(String[] args) {
        FTPClient ftpClient = new FTPClient();
        try {
            ftpClient.connect(FTP_SERVER_IP, FTP_SERVER_PORT);
            showServerReply(ftpClient);
            
            int replyCoce = ftpClient.getReplyCode();
            if(!FTPReply.isPositiveCompletion(replyCoce)){
                System.out.println("Failed. Server reply code: "+ replyCoce);
                return;
            }
            
            boolean status = ftpClient.login(FTP_SERVER_Username, FTP_SERVER_Password);
            showServerReply(ftpClient);
            if(!status){
                System.out.println("Login Fail");
            }else{
                System.out.println("Login Successfull");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void showServerReply(FTPClient ftp) {
        String[] rep = ftp.getReplyStrings();
        if (rep != null && rep.length > 0) {
            for (String s : rep) {
                System.out.println("Server: " + s);
            }
        }
    }
}

Trên đây cơ bản để kết nối và đăng nhập vào một máy chủ FTP sử dụng thư viện Apache Commons Net trong Java. Cảm ơn bạn đã tham khảo lập trình mạng trên ttnguyen.net.

Bài viết liên quan:

lập trình với giao thức TCP Socket Java

ứng dụng chat client server java socket Swing

lập trình với giao thức UDP Socket Java

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em