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:
- Import các lớp cần thiết từ thư viện Apache Commons Net.
- Định nghĩa lớp
ConnectFTP
chứa hàmmain
là hàm chính thực thi chương trình. - 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
). - 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.
- Tạo một đối tượng
- Đị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