Công nghệ Java - 28

try {

byte[] receiveData = new byte[1024]; receivePacket =

new DatagramPacket(receiveData, receiveData.length); myServer.receive(receivePacket);

ByteArrayInputStream bais = new ByteArrayInputStream(receiveData); ObjectInputStream ois = new ObjectInputStream(bais);

user = (User)ois.readObjjctQ;

} catch (Exception ex) { view.showMessage(ex.getStackT race().toString());

}

return user;

}

private boolean checkUser(User user) {

Có thể bạn quan tâm!

Xem toàn bộ 232 trang tài liệu này.

String query = "Select * FROM users WHERE username ='"

+ user.getUserName()+ "' AND password ='" + user.getPassword() + "'"; try {

Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); if (rs.next()) {

return true;

}

}catch(Exception e) { view.showMessage(e.getStackTrace().toString());

}

return false;

}

}

ServerRun.java

package udp.server; public class ServerRun {

public static void main(String[] args) {

ServerView view = new ServerView(); ServerControl control = new ServerControl(view);

}

Kết quả

Login thành công Login lỗi 7 5 Lấy dữ liệu web 7 5 1 URL và URI 7 5 2 Sử dụng 1

Login thành công:

Login lỗi 7 5 Lấy dữ liệu web 7 5 1 URL và URI 7 5 2 Sử dụng URLConnection để truy 2

Login lỗi:

7 5 Lấy dữ liệu web 7 5 1 URL và URI 7 5 2 Sử dụng URLConnection để truy xuất dữ 3

7.5. Lấy dữ liệu web

7.5.1. URL và URI

7.5.2. Sử dụng URLConnection để truy xuất dữ liệu

7.6. Gửi Email

Gửi mail trong java sử dụng JavaMail. Đây là một nền tảng và giao thức độc lập được sử dụng để gửi, nhận và đọc mail thông qua ứng dụng Java. Sử dụng JavaMail API này để tạo ra những ứng dụng Java có tính năng hỗ trợ gửi email cho người dùng. Ví dụ sau khi đăng ký thành công một tài khoản, ứng dụng sẽ gửi email thông báo đên người dùng, … Hình bên dưới là một minh hoạ về sử dụng JavaMail.

Hình 7 6 Minh hoạ sử dụng JavaMail 7 6 1 1 Mô tả các giao thức mail khác nhau Hiện 4

Hình 7.6. Minh hoạ sử dụng JavaMail

7.6.1.1. Mô tả các giao thức mail khác nhau

Hiện nay có 3 giao thức cơ bản được ứng dụng trong mail server giúp hệ thống có thể hoạt động trơn tru và đảm bảo khả năng bảo mật cao nhất, bao gồm:

- SMTP – Simple Mail Transfer Porotocol: SMTP được sử dụng khi gửi từ một ứng dụng email như Postfix với một máy chủ email hoặc khi email được gửi từ một máy chủ email khác. Giao thức này sử dụng cổng TCP 25.

- POP3 – Post Office Porotocol version 3: giao thức này được dùng để tải một email từ một máy chủ email. POP3 sử dụng cổng TCP 110.

- IMAP – Internet Message Access Protocol: Đây là giao thức thế hệ mới của POP. IMAP sử dụng cổng TCP 143 và đặt sự kiểm soát email trên mail server. IMAP có thể hoạt động ở 3 chế độ: trực tuyến, ngoại tuyến và ngắt kết nối. Chế độ ngoại tuyến được thực hiện như sau: khi các email đã được chuyển tới máy client, nó sẽ bị xóa khỏa mail server và sau đó hệ thống bị ngắt. Lúc này người dùng có thể đọc, trả lời và làm một số việc khác ở chế độ ngoại tuyến. Tuy nhiên nếu họ muốn gửi thư, họ phải kết nối lại. Như vậy ở trong chế độ này, thông điệp được lưu tạm ở client server giúp người dùng có thể sử dụng bình thường và ở lần kết nối kế tiếp nó sẽ được cập nhập trở lại vào mail server.

Hình 7 7 Các giao thức mail 7 6 2 Khái niệm Session Lớp Session mô tả một mail 5

Hình 7.7. Các giao thức mail

7.6.2. Khái niệm Session

Lớp Session mô tả một mail session và không có các lớp phụ, Nó thu thập các thuộc tính và giá trị mặc định được sử dụng bới mail API. Một phiên mặc định có thể được chia sẻ bởi nhiều ứng dụng trên desktop. Các session không chia sẻ cũng có thể được tạo ra. Lớp Session cung cấp quyền truy cập tới các nhà cũng cấp thực hiện Store, Transport và các lớp liên quan.Các giao thức cung cấp cấp hình bằng cách sử dụng các tệp:

javamail.providers and javamail.default.providers javamail.address.map and javamail.default.address.map

7.6.3. Cách tạo message

Tạo một đối tượng MimeMessage với một số thiết lập cơ bản như: Người gửi (from), người nhận (to), chủ đề (subject) và nội dung (body)

Message msg = new MimeMessage(s); msg.setFrom(new InternetAddress(from));

msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); msg.setSubject(subject);

msg.setText(body);

7.6.4. Các bước để tạo và gửi message

Bước 1. Tạo đối tượng Properties và chỉ định thông tin host, post

Properties p = new Properties(); p.put("mail.smtp.auth", "true"); p.put("mail.smtp.starttls.enable", "true"); p.put("mail.smtp.host", "smtp.gmail.com");

p.put("mail.smtp.port", 587);

Bước 2. Tạo đối tượng session

Session s = Session.getInstance(p, new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(accountName, accountPassword);

}

});

Trong đó accountName và accountPassword là tài khoản gmail. Bước 3. Tạo đối tượng message

Message msg = new MimeMessage(s); msg.setFrom(new InternetAddress(from));

msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); msg.setSubject(subject);

msg.setText(body);

Bước 4. Gửi mail

Transport.send(msg);

7.6.5. Các bước cần thiết để đọc một message

Bước 1. Tạo đối tượng Properties và chỉ định thông tin host, post

Properties p = new Properties(); p.put("mail.smtp.auth", "true"); p.put("mail.smtp.starttls.enable", "true"); p.put("mail.smtp.host", "smtp.gmail.com"); p.put("mail.smtp.port", 587);

Bước 2. Tạo Authentication

javax.mail.Authenticator pa = null; //default: no authentication if (username != null && password != null) { props.put(“mail.smtp.auth”, “true”);

pa = new javax.mail.Authenticator (){

public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password);

}

};

}//else: no authentication

Bước 3.Kết nối tới POP3 server

Session session = Session.getDefaultInstance(props, pa); Store store = session.getStore(provider);

store.connect(host, username, password);

Bước 4. Đọc mail

Folder inbox = store.getFolder(“INBOX”);

//…

inbox.open(Folder.READ_ONLY);


//…

Message[] messages = inbox.getMessages();

7.6.6. Các bước cần thiết để trả lời một email

Message[] messages = folder.getMessages();

for (int i = 0, n = messages.length; i < n; i++) { Message message = messages[i];

}

Bước 1. Đọc email như các bước ở trên Bước 2. Chọn email để trả lời


Bước 3. Tạo đối tượng message

Message replyMessage = new MimeMessage(session); replyMessage = (MimeMessage) message.reply(false); replyMessage.setFrom(new InternetAddress(to)); replyMessage.setText("Thanks"); replyMessage.setReplyTo(message.getReplyTo());

Bước 4. Gửi mail

Transport t = session.getTransport("smtp"); t.sendMessage(replyMessage, replyMessage.getAllRecipients());

CÂU HỎI ÔN TẬP, THẢO LUẬN

Câu 1. Mỗi đối tượng trong lớp InetAddress chứa mấy thành phần chính? Lớp kế thừa từ lớp InetAddress gồm những lớp nào?

Câu 2. Phương thức sau trả về kết quả gì:

InetAddress[] addresses = InetAddress.getAllByName(String name) throws UnknownHostException

Câu 3. Chương trình sau cho kết quả gì?

import java.net.*; public class MyAddress {

public static void main(String[] args) { try { InetAddress me = InetAddress.getLocalHost( ); String dottedQuad = me.getHostAddress( ); System.out.println("My address is " + dottedQuad); catch (UnknownHostException ex) {

System.out.println("I'm sorry. I don't know my own address.");

}

}

}

Câu 4. Chương trình sau cho kết quả gì?

import java.net.*;

public class AddressTests {

public static int getVersion(InetAddress ia)

{ byte[] address = ia.getAddress( ); if (address.length == 4) return 4;

else if (address.length == 6) return 6; else return -1;

}

Câu 5. Liệt kê tóm tắt một số lớp Java hỗ trợ lập trình với TCPSocket. Giái thích tác dụng của các lớp.

Câu 6. Trình bày kỹ thuật lập trình truyền thông với giao thức TCP?

Câu 7. Tóm tắt Một số lớp Java hỗ trợ lập trình với UDPSocket. Giải thích tác dụng của các lớp đó.

Câu 8. Trình bày kỹ thuật lập trình truyền thông với giao thức UDP. So sánh với giao thức TCP?

BÀI TẬP ỨNG DỤNG

Bài 1. Viết chương trình nhận đối số là một URL. Nối kết đến Web Server trong URL nhận được, lấy trang web về và in ra màn hình theo dạng textfile (html).

Bài 2. Viết chương trình gửi đến URL một chuỗi, mở kết nối từ URL này và hiển thông tin header.

Chức năng chương trình:

- Mở kết nối đến địa chỉ URL

- Hiển thị thông tin các header nhận được

Bài 3. Viết chương trình in ra địa chỉ của localhost (địa chỉ cục bộ), null host và địa chỉ bất kì trên internet.

Bài 4. Viết chương trình đọc file từ xa thông qua web server. Bài 5. Viết chương trình download file thông qua web server. Bài 6.Viết chương trình cộng hai số nguyên

- Client: Nhập vào từ bàn phím 2 số nguyên (a,b). Client chờ nhận kết quả từ Server để in ra màn hình.

- Server: Nhận 2 số nguyên mà Client vừa gửi, tính tổng, tích, thương của chúng và gửi kết quả cho Client.

Bài 7. Viết chương trình kiểm tra số

-Client: Nhập vào một số.Client chờ nhận kết quả từ Server để in ra màn hình.

-Server:Nhận số mà Client vừa gửi, Server tiến hành kiểm tra số đó có là nguyên tố, số hoàn hảo hay không và gửi lại cho Client.

Bài 8. Viết chương trình

-Client: Nhập vào một mảng số nguyên . Client chờ nhận kết quả từ Server để in ra màn hình.

-Server: Nhận mảng mà Client vừa gửi, Server tiến hành tìm các số chẵn và gửi lại cho Client.

Bài 9. Xây dựng một mô hình ứng dụng khách/chủ (client/server) sử dụng lớp Socket và ServerSocket để kết nối và trao đổi thông tin giữ máy khách và máy chủ. Máy khách (client) sẽ gửi một chuỗi đến máy chủ (server), máy chủ sẽ chuẩn hóa và đảo ngược thứ tự của chuỗi và gửi trả về cho máy khách.

Bài 10. Tạo ra hai ứng dụng độc lập (một client và một server). Client chấp nhận một trong các số sau: 1, 2, 3. Số này sẽ được gửi đến server. Server sẽ trả lại tương ứng : “ONE” hoặc “TWO” hoặc “THREE” (tùy theo số nhận được). Dùng giao thức TCP/IP

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 29/01/2024