Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
113,84 KB
Nội dung
Chương Lập trình mạng Java Mục lục chương • Lớp InetAddress • Lập trình Client – Server hướng kết nối • Lập trình Client – Server khơng hướng kết nối • Lập trình mạng với giao diện đồ họa • Làm việc với Internet Lớp InetAdress • Lớp InetAddress cung cấp phương tiện để truy cập địa Internet tên máy địa IP • Phương thức getByName() lớp sử dụng hệ thống tên miền (DNS) để trả lại địa Internet tên máy Lớp InetAdress • Để hiển thị địa IP máy ta gọi đến phương thức println() • Phương thức println() gọi đến phương thức toString() lớp • Bởi vỉ phương thức getByName() tạo ngoại lệ khơng tìm thấy tên máy Do ta cần Throw ngoại lệ xử lý mệnh đề catch Ví dụ nhận địa IP máy • • • • • • • • • • • • • • • • • import java.net.*; import java.util.*; public class IPFinder { public static void main(String[] args) { String host; Scanner input = new Scanner(System.in); System.out.print("\n\nEnter host name: "); host = input.next(); try { InetAddress address = InetAddress.getByName(host); System.out.println("IP address: "+ address.toString()); } catch (UnknownHostException uhEx){ System.out.println("Could not find " + host); } } } Ví dụ nhận địa IP máy cục • • • • • • • • • • • • • • • • import java.net.*; public class MyLocalIPAddress { public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost(); System.out.println(address); } catch (UnknownHostException uhEx) { System.out.println("Could not find local address!"); } } } Khái niệm Socket Port • Socket khái niệm trừu tượng thành phần phần cứng máy tính • Socket điểm đầu cuối liên kết hai tiến trình • Một socket xác định địa IP số hiệu cổng (Port) • Khái niệm Socket Port • Địa IP dùng để xác định máy mà socket ta làm việc • Số hiệu cổng (port) dùng để xác định tiến trình cụ thể máy có chứa địa IP Xây dựng ứng dụng Client-Server hướng kết nối • Khái niệm: ứng dụng Client-Server gồm phía – Phía Client gửi yêu cầu đến Server – Phía Server đáp ứng u cầu Client • Một ứng dụng Client-Server hướng kết nối bao gồm bước – Thiết lập kết nối – Truyền liệu – Hủy bỏ kết nối Xây dựng ứng dụng phía Server • Để thực việc xây dựng ứng dụng phía Server ta cần thực bước sau: • Tạo ServerSocket: Để tạo ServerSocket ta thực câu lệnh sau: – ServerSocket servSock = new ServerSocket(1234); – Sau thực câu lệnh này, server trạng thái đợi kết nối đến từ Client 10 Phía Client • Tạo đối tượng DatagramSocket – Tương tự phía Server – Sự khác biệt hàm tạo không cần tham số – DatagramSocket datagramSocket = new DatagramSocket(); – 34 Phía Client • Tạo datagramPacket để truyền – Tương tự bước phía server – DatagramPacket outPacket = new DatagramPacket(message.getBytes(), message.length(), host, PORT); 35 Phía Client • Truyền thơng điệp datagram – Gọi phương thức send lớp DatagramSocket – Truyền tham số đối tượng lớp DatagramPacket – datagramSocket.send(outPacket); 36 Phía Client • Tạo vùng đệm để nhận liệu – byte[] buffer = new byte[256]; 37 Phía Client • Tạo đối tượng DatagramPacket cho liệu đến – DatagramPacket inPacket = – new DatagramPacket(buffer, buffer.length); 38 Phía Client • Chấp nhận datagram – datagramSocket.receive(inPacket); • Truy cập liệu từ vùng đệm – String response = – new String(inPacket.getData(),0, – inPacket.getLength()); 39 Phía Client • Đóng kết nối – datagramSocket.close(); 40 Ví dụ xây dựng ứng dụng khơng hướng kết nối • Mục đích xây dựng ứng dụng hướng kết nối • Một số điểm khác là: – IOException hàm main thay SocketException – Khơng có mệnh đề try khối finally 41 Lập Trình Mạng với Giao diện đồ họa • Xây dựng ứng dụng sử dụng giao thức Daytime để thị ngày hệ thống máy chủ – Giao thức Daytime thường cài đặt cổng số hiệu 13 – Chương trình cung cấp text field cho người sử dụng nhập tên máy chủ – Sau thời gian máy chủ gửi đến hiển thị Client 42 Lập Trình Mạng với Giao diện đồ họa • Một điểm ý khó để tìm máy chủ có chạy giao thức daytime • Trong trường hợp ứng dụng kết nối đến máy chủ phát sinh ngoại lệ 43 Lập Trình Mạng với Giao diện đồ họa • Để minh hoa cho việc sử dụng giao thức daytime ta tự xây dựng ứng dụng máy chủ cung cấp giao thức daytime 44 Ứng dụng quét cổng • Ứng dụng giao diện đồ họa ta xây dựn ứng dụng qt cổng • Chương trình kiểm tra danh sách cơng máy tính cụ thể liệt kê cơng có cung cấp dịch vụ (các cổng mở) 45 Ứng dụng quét cổng • Nguyên tắc chung: – Chúng ta tạo socket số cổng cụ thể – Nếu tạo thành cơng cổng mở, khơng cổng đóng ngoại lệ phát sinh 46 Tải Website • Một đặc điểm hữu ích Java khả tải thị website • Lớp sử dụng để chứa hiển thị website JEditorPane • Lớp tự động định dạng hiển thị website download 47 Tải Website • Để tải trang web ta sử dụng phương thức setPage lớp JEditorPane • Nếu trang web down có chứa hyperlinks người sử dụng kích vào hyperlink kiện HyperlinkEvent tạo • Sự kiện phải xử lý lớp cài đặt giao tiếp HyperlinkListener 48