Networking trong lập trình java
Nội dung bài học
Download tài nguyên mạng
Gửi email thông qua gmail
Tài nguyên mạng
Tài nguyên trên mạng (trang web, hình ảnh, video…) có
thể truy cập thông qua địa chỉ URL
Lớp URL
Java cung cấp lớp java.net.URL để có thể gửi/nhận dữ liệu với các URL đó.
URL - API
Thông tin URL
Download từ Internet
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
//Chứa dữ liệu download
URL url = new URL("http://www.vnexpress.net");
InputStream is = url.openStream(); // Mở luồng dữ liệu đến tài nguyên
byte[] block = new byte[4*1024]; // 4KB
while(true){
int n = is.read(block); // Chỉ nên đọc 1 lần tối đa 4KB
if(n <= 0){
break; //Dừng khi đã hết dữ liệu
}
buffer.write(block, 0, n); //Tích lũy dữ liệu đọc được
}
is.close();
byte[] data = buffer.toByteArray(); //Lấy nội dung trang web
buffer.close();
ĐỀ MÔ
Xử lý nút [Tải]
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
URL url = new URL(txtUrl.getText());
InputStream is = url.openStream();
byte[] block = new byte[4*1024]; // 4KB while(true){
int n = is.read(block); if(n <= 0){
break;
}
buffer.write(block, 0, n);
}
is.close();
txtNoiDung.setText(buffer.toString("utf-8"));
buffer.close();
Xử lý nút [Xử lý nút lưu file]
if(jFileChooser1.showSaveDialog(this) == JFileChooser.APPROVE_OPTION){
File file = jFileChooser1.getSelectedFile();
FileOutputStream fos = new FileOutputStream(file);
URL url = new URL(txtUrl.getText());
InputStream is = url.openStream();
byte[] block = new byte[4*1024]; // 4KB
while(true){
int n = is.read(block);
if(n <= 0){
break;
}
fos.write(block, 0, n);
}
is.close();
fos.close();
}
Gửi email
Gửi email là hoạt động thường xuyên xảy ra của 1 ứng dụng. Có thể người dùng gửi cho 1 ai đó, hoặc có thể là thông báo của hệ thống
Để gửi email trong Java bạn cần 2 thư viện
• Mail.jar
• Activation.jar
Mail API
Các phương thức được sử dụng của MimeMessage trong việc gửi email.
Giải thuật gửi gmail
Code gửi gmail
Code gửi email qua gmail trong lập trình java
Gửi email có CC và BCC
Để gửi mail cho nhiều người cùng nhận bạn chỉ cần bổ sung
các email ấy vào CC hoặc BCC.
Sự khác biệt giữa CC và BCC là CC là những email sẽ được người nhận nhìn thấy trên mail còn BCC thì không.
Mã bổ sung email cùng nhận:
Gửi mail có đính kèm file
Queu mail
Chi phí (CPU và bộ nhớ) dành cho gửi mail là rất cao. Đôi khi hệ thống phải thực hiện gửi nhiều email một lúc dẫn đến tài nguyên cạn kiệt dễ gây tê liệt hệ thống.
Giải pháp khắc phục là tại queue nắm giữ các mail và có 1 thread chuyển trách gửi tuần tự từng email.
MailSender Thread
Thay vì gọi Transport.send(mail) để gửi email thì sử dụng MailSender.queue(mail) để bổ sung email vào queue và sẽ được gửi bởi 1 Thread khác
XIN CẢM ƠN!
Post a Comment