1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Lập trình mạng với ngôn ngữ java: Phần 1

129 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 129
Dung lượng 2,8 MB

Nội dung

Java là ngôn ngữ lập trình hướng đối tượng thuần túy với nhiều đặc trưng ưu việt so với các ngôn ngữ lập trình hướng đối tượng khác như tính độc lập với nên, tính bảo mật,... Mời các bạn cùng tìm hiểu về lập trình mạng với ngôn ngữ java thông qua 10 chương của giáo trình, trên đây là phần 1 sách gồm 5 chương đầu với nội dung sau: Giới thiệu những khái niệm căn bản về mạng máy tính, giới thiệu ngôn ngữ lập trình java, các luồng vào ra, lập trình đa tuyến đoạn, lập trình mạng với các lớp inetaddress, URL và URLConnection

Lời mở đầu Lập trình mạng nhiệm vụ để phát triển ứng dụng doanh nghiệp Một chương trình mạng viết để chương trình máy tính khác truyền tin với cách hiệu an toàn cho dù chúng cài đặt mạng LAN, WAN hay mạng toàn cầu Internet, điều thành công nhiều hệ thống Java ngơn ngữ lập trình hướng đối tượng túy với nhiều đặc trưng ưu việt so với ngơn ngữ lập trình hướng đối tượng khác tính độc lập với nên, tính bảo mật,…Java ngơn ngữ từ đời hướng đến lập trình mạng nên việc viết chương trình lập trình mạng Java dễ dàng nhiều so với ngơn ngữ khác Giáo trình bao gồm 10 chương: Chương 1: Giới thiệu khái niệm mạng máy tính để người đọc tiếp cận với chương Trong chương vào xem xét mạng vật lý, phần cứng sử dụng mạng LAN Tiếp theo tìm hiểu mơ hình phân tầng OSI bảy tầng, tương ứng họ giao thức TCP/IP với tầng mơ hình OSI Sau vào tìm hiểu giao thức mạng, giao thức Internet, giao thức e-mail Chương 2: Giới thiệu ngơn ngữ lập trình Java Chương trình bày khái niệm ngơn ngữ lập trình Java Giới thiệu lịch sử phát triển cấu trúc máy ảo Java Những đặc trưng tạo nên sức mạnh ngôn ngữ Java giới thiệu chương Cũng chương vào tìm hiểu cách cấu hình cài đặt môi trường biên dịch, chạy soạn thảo ngôn ngữ Java Tiếp đến ta vào tìm hiểu thành phần Java kiểu liệu, cấu trúc lệnh rẽ nhánh, lặp, nhảy Tiếp theo vào tìm hiểu khái niệm liên quan đến lập trình hướng đối tượng Java lớp, phương thức, thuộc tính, từ khóa bổ trợ static, final, abstract, thừa kế tính đa hình Java Một khái niệm mà ngôn ngữ truyền thống trước ngoại lệ đón bắt ngoại lệ Java giới thiệu Chương 3: Các luồng vào Chương giới thiệu khái niệm vào luồng liệu Trước tiên ta tìm hiểu luồng ý nghĩa luồng chương trình Java Tiếp đến tìm hiểu luồng vào chuẩn gói làm việc với console Các luồng trừu tượng java.io.InputStream, java.io.OutputStream luồng để từ xây dựng nên luồng cụ thể Luồng chia thành nhóm luồng byte luồng ký tự Từ phiên Java 1.4 đặc trưng vào Java đưa vào giới thiệu chương Việc nắm vững kiến thức chương giúp cho việc lập trình ứng dụng mạng trở nên đơn giản thực chất việc truyền nhận liệu ứng dụng mạng việc đọc ghi luồng Chương 4: Lập trình đa tuyến đoạn Trong ngơn ngữ lập trình trước ứng dụng hầu hết ứng dụng đơn tuyến đoạn Để tăng tốc độ xử lý giải vấn đề tương tranh ứng dụng nói chung ứng dụng mạng nói riêng ta cần sử dụng khái niệm đa tuyến đoạn Phần đầu chương trình bày khái niệm tiến trình, tuyến đoạn Tiếp đến xem xét cách cài đặt ứng dụng tuyến đoạn Java lớp Thread thực thi giao tiếp Runnable Sau ta vào tìm hiểu phương thức lớp Thread Sự đồng hóa cách cài đặt chương trình đồng hóa giới thiệu chương Chương 5: Lập trình mạng với lớp InetAddress, URL URLConnection Lớp InetAddress lớp lập trình mạng mà ta cần tìm hiểu Nó cách chương trình Java tương tác với hệ thống tên miền Tiếp đến ta vào tìm hiểu khái niệm URI, URL,URN lớp biểu diễn URL Java Cách sử dụng URL để tải thông tin tệp tin từ server Sau ta vào tìm hiểu lớp URLConnection, lớp đóng vai trị động cho lớp URL Sưu tầm bởi: www.daihoc.com.vn Chương 6: Lập trình Socket cho giao thức TCP Trong chương tìm hiểu cách lập trình cho mơ hình client/server kiểu kiến trúc client/server Các lớp Socket ServerSocket trình bày chi tiết chương để lập chương trình cho giao thức TCP Chương 7: Lập trình ứng dụng cho giao thức UDP Chương giới thiệu giao thức UDP đặc trưng giao thức Tiếp đến ta vào tìm hiểu lớp DatagramPacket DatagramSocket để viết chương trình ứng dụng mạng cho giao thức UDP Chương 8: Tuần tự hóa đối tượng ứng dụng lập trình mạng Trình bày vấn đề hóa ứng dụng hóa lập trình mạng Chương 9: Phân tán đối tượng Java RMI Chương tìm hiểu chủ đề lập trình phân tán đối tượng kỹ thuật gọi phương thức RMI (Remote Method Invocation) Chương 10:Xử lý sở liệu Java Trình bày cách thức kết nối sở liệu xử lý sở liệu Java thơng qua giao diện lập trình ứng dụng JDBC Tìm hiểu lập trình mạng tốt hệ thống mạng thực với nhiều máy tính kết nối vật lý Tuy nhiên giáo trình hầu hết ví dụ trình bày để bạn đọc lập trình thử nghiệm ứng dụng mạng máy đơn Mặc dù cố gắng để trình bày giáo trình cách dễ hiểu với ví dụ minh họa giúp bạn đọc thử nghiệm sau tìm hiểu vấn đề lý thuyết, chắn giáo trình khơng thể tránh khỏi thiếu sót định Rất mong góp ý phê bình bạn độc giả Mọi thắc mắc góp ý bạn gửi theo địa e-mail sau:lequocdinh@vnn.vn hoan_td2001@yahoo.com Để hoàn thành giáo trình tác giả nhận giúp đỡ nhiều từ bạn bè, đồng nghiệp người thân Xin chân thành cảm ơn tới tất người Nhóm tác giả Sưu tầm bởi: www.daihoc.com.vn MỤC LỤC Lời mở đầu Chương 1:Các khái niệm mạng giao thức 1 Mạng máy tính 1.1 Các đường WAN 1.2 Giao thức Ethernet 1.3 Các thành phần vật lý Mơ hình phân tầng 2.1 Tầng 1:Tầng vật lý 2.2 Tầng 2: Tầng liên kết liệu 2.3 Tầng 3: Tầng mạng 2.4 Tầng 4:Tầng giao vận 2.5 Tầng 5: Tầng phiên 2.6 Tầng 6:Tầng trình diễn 2.7 Tầng 7:Tầng ứng dụng Các giao thức mạng 3.1 Các giao thức 3.2 Các giao thức Internet 14 Soket 17 Dịch vụ tên miền 17 5.1 Các server tên miền 18 5.2 Nslookup 19 Internet Extranet 20 6.1 Intranet Extranet20 6.2 Firewall 20 6.3 Proxy Server 20 Chương : Giới thiệu ngơn ngữ lập trình Java 21 Giới thiệu công nghệ Java 21 1.1 Lịch sử phát triển 21 1.2 Cấu trúc máy ảo Java – Java Virtual Machine 21 1.3 Các đặc trưng Java 21 1.4 Các ấn Java 22 1.5 Công cụ phát triển 23 1.6 Các kiểu ứng dụng Java 23 1.7 Cài đặt chương trình dịch Java cơng cụ 23 1.8 Một số ví dụ mở đầu 25 Ngơn ngữ lập trình Java 27 2.1 Cấu trúc tệp chương trình Java 27 2.2 Định danh, kiểu liệu khai báo biến 28 2.3 Các kiểu liệu nguyên thủy (primitive datatype) 28 2.4 Khai báo biến 30 2.5 Các lệnh Java 31 2.6 Các lớp đối tượng Java 36 2.7 Giao tiếp – Interface 48 2.8 Các gói sử dụng gói Java 50 2.9 Quản lý ngoại lệ 52 I Sưu tầm bởi: www.daihoc.com.vn Chương 3: Các luồng vào 59 Khái niệm luồng Java 59 1.1 Khái niệm luồng(stream) 59 Luồng xuất nhập chuẩn 60 Luồng nhị phân 60 3.1 Lớp InputStream 60 3.2 Lớp OutputStream 61 3.3 Các luồng xuất nhập mảng byte 62 3.4 Luồng xuất nhập tập tin 64 3.5 Truy nhập tệp ngẫu nhiên 66 3.6 Luồng PrintStream 68 Luồng ký tự 68 4.1 Sự tương ứng luồng byte luồng ký tự 68 4.2 Mã hóa ký tự 69 4.3 Lớp Writer 70 4.4 Lớp Reader 70 4.5 Lớp OutputStreamWriter 70 4.6 Lớp InputStreamReader 71 4.7 Lớp FileWriter 71 4.8 Lớp FileReader 72 Luồng đệm 73 Luồng vào – New Input Output 74 6.1 Căn NIO 74 6.2 Buffer (Các vùng đệm) 74 6.3 Các kênh (Channel) 76 6.4 Charset Selector 76 6.5 Đọc tệp 77 6.6 Ghi tệp tin 80 Kết luận 82 Chương 4: Lập trình đa tuyến đoạn 83 1.Tổng quan83 1.1 Lập trình đơn tuyến đoạn 83 1.2 Lập trình đa tiến trình 83 1.3 Lập trình đa tuyến đoạn 84 Tạo ứng dụng đa tuyến đoạn với lớp Thread 86 Tạo ứng dụng đa tuyến đoạn với giao tiếp Runnable 87 Sự đồng hóa 88 4.1 Các phương thức synchronized 88 4.2.Lệnh synchronized 89 Phương thức wait notify 90 Lập lịch cho tuyến đoạn 91 Hoài vọng-Deadlock 92 Điều khiển tuyến đoạn 94 8.1 Ngắt tuyến đoạn Thread 94 8.2 Kết thúc việc thực thi tuyến đoạn 95 8.3 Tạm dừng phục hồi việc xử lý tuyến đoạn 96 II Sưu tầm bởi: www.daihoc.com.vn Các nhóm tuyến đoạn –ThreadGroup 96 9.1 Tạo nhóm Thread 98 10 Một ví dụ minh họa việc sử dụng tuyến đoạn 98 11 Kết luận 100 Chương 5: Lập trình mạng với lớp InetAddress, URL URLConnection 102 Lớp InetAddress102 1.1 Tạo đối tượng InetAddress102 1.2 Nhận trường thông tin đối tượng InetAddress 103 1.3 Một số chương trình minh họa 104 Lớp URL 105 2.1 Tạo URL 105 2.2 Phân tích URL thành thành phần 106 2.3 Tìm kiếm liệu từ URL 108 2.4 Các phương thức tiện ích 109 Lớp URLConnection109 3.1 Mở URLConnection 110 3.2 Đọc liệu từ server 111 3.3 Phân tích Header 113 Chương 6: Lập trình Socket cho giao thức TCP 119 Mơ hình client/server 119 Các kiến trúc Client/Server 120 2.1 Client/Server hai tầng (two-tier client/server) 120 2.2 Client/Server ba tầng 121 2.3 Kiến trúc n-tầng 122 Mơ hình truyền tin socket 122 Socket cho Client 124 4.1 Các constructor 124 4.2 Nhận thông tin Socket 125 4.3 Đóng Socket 126 4.4 Thiết lập tùy chọn cho Socket127 4.5 Các phương thức lớp Object127 4.6 Các ngoại lệ Socket 127 4.7 Các lớp SocketAddress 127 Lớp ServerSocket 128 5.1 Các constructor 128 5.2 Chấp nhận ngắt liên kết 129 Các bước cài đặt chương trình phía Client Java 131 Các bước để cài đặt chương trình Server Java 134 Ứng dụng đa tuyến đoạn lập trình Java 136 Kết luận 141 Chương 7: Lập trình ứng dụng cho giao thức UDP 142 Tổng quan giao thức UDP 142 1.1 Một số thuật ngữ UDP 142 1.2 Hoạt động giao thức UDP 143 1.3 Các nhược điểm giao thức UDP 143 1.4 Các ưu điểm UDP 144 1.5 Khi nên sử dụng UDP 144 Lớp DatagramPacket 145 III Sưu tầm bởi: www.daihoc.com.vn 2.1 Các constructor để nhận datagram 145 2.2 Constructor để gửi datagram 146 Lớp DatagramSocket 148 Nhận gói tin 148 Gửi gói tin 150 Ví dụ minh họa giao thức UDP 151 Chương 8: Phân tán đối tượng Java RMI 159 1.Tổng quan 159 Mục đích RMI 159 Một số thuật ngữ 160 Các lớp trung gian Stub Skeleton 160 Cơ chế hoạt động RMI 160 Kiến trúc RMI 163 Cài đặt chương trình 164 Triển khai ứng dụng 166 Các lớp giao tiếp gói java.rmi 167 9.1 Giao tiếp Remote 167 9.2 Lớp Naming 167 10 Các lớp giao tiếp gói java.rmi.registry 168 10.1 Giao tiếp Registry 168 10.2 Lớp LocateRegistry 168 11 Các lớp giao tiếp gói java.rmi.server 169 11.1 Lớp RemoteObject 169 11.2 Lớp RemoteServer 169 11.3 Lớp UnicastRemoteObject 169 12 Kết luận169 Chương : Xử lý sở liệu Java 171 JDBC Java Database Connectivity API 171 Cấu trúc JDBC 171 2.1 Kiểu 172 2.2 Kiểu 173 2.3 Kiểu 174 2.4 Kiểu 175 Kết nối sở liệu 176 3.1 DriverManager 176 3.2 Connection 176 3.3 Statement 177 3.4 ResultSet 177 Lớp DatabaseMetaData 178 Lớp ResultSetMetaData 179 Các bước để kết nối với sở liệu từ ứng dụng Java 180 Sử dụng PreparedStatement 185 Sử dụng giao tác 187 Tài liệu tham khảo 190 IV Sưu tầm bởi: www.daihoc.com.vn Chương Các khái niệm mạng giao thức mạng Mạng máy tính Mạng máy tính Là tập hợp máy tính thiết bị nối với đường truyền vật lý theo kiến trúc Chúng ta phân loại mạng theo qui mơ nó:  Mạng LAN (Local Area Network)-mạng cục bộ: kết nối nút phạm vi giới hạn Phạm vi cơng ty, hay tòa nhà  Mạng WAN (Wide Area Network): nhiều mạng LAN kết nối với tạo thành mạng WAN  MAN (Metropolitan Area Network), tương tự WAN, kết nối nhiều mạng LAN Tuy nhiên, mạng MAN có phạm vi thành phố hay đô thị nhỏ MAN sử dụng mạng tốc độ cao để kết nối mạng LAN trường học, phủ, cơng ty, , cách sử dụng liên kết nhanh tới điểm cáp quang Khi nói đến mạng máy tính, người ta thường đề cập tới mạng xương sống (backbone) Backbone mạng tốc độ cao kết nối mạng có tốc độ thấp Một công ty sử dụng mạng backbone để kết nối mạng LAN có tốc độ thấp Mạng backbone Internet xây dựng mạng tốc độ cao kết nối mạng tốc độ cao Nhà cung cấp Internet kết nối trực tiếp với mạng backbone Internet, nhà cung cấp lớn 1.1 Các đường kết nối mạng WAN Để kết nối tới mạng WAN, có số tùy chọn sau:  Khi khách hàng cụ thể yêu cầu sử dụng mạng với thông lượng xác định, sử dụng đường thuê bao (leased line)  Các đường chuyển mạch (switched lines) sử dụng dịch vụ điện thoại thông thường Một mạch thiết lập phía nhận phát khoảng thời gian thực gọi trao đổi liệu Khi khơng cịn cần dùng đường truyền nữa, cần phải giải phóng đường truyền cho khách hàng khác sử dụng Các ví dụ đường chuyển mạch đường POTS , ISDN, DSL  Mạng chuyển mạch gói mạng mà nhà cung cấp dịch vụ cung cấp công nghệ chuyển mạch để giao tiếp với mạng xương sống Giải pháp cung cấp hiệu cao khả chia sẻ tài nguyên khách hàng Các giao thức sử dụng cho mạng chuyển mạch bao gồm X.25 (64Kbps), Frame Relay (44.736Mbps), ATM (9.953 Gbps) Kiến trúc mạng: Một vấn đề cần quan tâm mạng máy tính kiến trúc mạng Nó cập tới hai khía cạnh Hình trạng mạng Giao thức mạng  Hình trạng mạng: Là cách nối máy tính với Người ta phân loại mạng theo hình trạng mạng mạng sao, mạng bus, mạng ring…  Giao thức mạng: Là tập hợp qui tắc, qui ước truyền thông mạng mà tất thực thể tham gia truyền thông phải tuân theo Sưu tầm bởi: www.daihoc.com.vn 1.2 Giao thức Ethernet Để có hiểu biết tốt mạng vật lý hoạt động nào, xem xét số giao thức LAN phổ biến: giao thức Ethernet Chín mươi phần trăm thiết bị gắn với mạng LAN sử dụng giao thức Ethernet, ban đầu phát triển Xerox, Digital Equipement, Intel năm 1972 Ngày nay, Ethernet hỗ trợ đường truyền 100Mbps 1Gbps Rất nhiều công nghệ đường truyền sử dụng với Ethernet Người ta sử dụng số qui ước để đặt tên giao thức Enternet Tên tốc độ mạng Ethernet thuộc tính cơng nghệ đường truyền Các tên bắt đầu số để tốc độ truyền tối đa, từ sử dụng để xác định công nghệ truyền dẫn, cuối số để khoảng cách hai nút Ví dụ, 10Base2 ký hiệu Ethernet hoạt động với tốc độ 10Mbps sử dụng kỹ thuật truyền băng tần sở, với cáp có chiều dài tối đa 200m Một số cấu hình thơng dụng khác sau: Chuẩn Ethernet 10Base5 10BaseT Tốc độ 10Mbps 10Mbps Kiểu cáp Cáp đồng trục Cáp đồng 100BaseTX 100Mbs Cáp đồng 1000BaseSX 1000Mbps Cáp đa chế độ  Mô tả Đây chuẩn ban đầu cho Ethernet 10BaseT mạng 10Mbps với cáp xoắn 100Mbps công nghệ cáp xoắn khả truyền song công 1000Mbps với cáp sợi quang S :Short wavelength (850nm) Bảng 1.1 CSMA/CD (Carrier Sense Multiple Access/Collision Detect) Nhiều thiết bị kết nối vào mạng tất có quyền truy xuất đồng thời Khi thơng điệp gửi đi, truyền thơng qua mạng Phía nhận định danh địa nhất, có nút đọc thơng điệp, cịn nút khác bỏ qua Một vấn đề đặt có nhiều nút cố gắng gửi thơng điệp thời điểm, điều phá hỏng gói tin Giải pháp cho vấn đề nút mạng giám sát mạng phát mạng rảnh hay bận Một nút bắt đầu gửi liệu khơng có liệu gửi mạng trước CSMA phận CSMA/CD Tuy nhiên có khả hai nút, sau kiểm tra thấy mạng khơng bận, bắt đầu gửi gói tin thời điểm cáp mạng Điều gây lên xung đột hai gói tin, kết phá hỏng liệu Cả hai phía gửi nhận thức gói tin bị hỏng lắng nghe mạng gửi liệu, phát xung đột Đây CD (Collision Dection) CSMA/CD Cả hai nút dừng việc truyền liệu tức thời, chờ thời điểm định trước kiểm tra mạng trở lại để xem mạng có rỗi hay khơng truyền lại Mỗi nút mạng sử dụng địa MAC (Media Access Control) để định danh Địa định nghĩa thiết bị giao tiếp mạng Một gói tin gửi mạng, thiết bị mạng khơng nhận diện host host nhận, bỏ qua gói tin chuyển tiếp Sưu tầm bởi: www.daihoc.com.vn  Các giao thức khác IBM phát triển giao thức Token Ring (IEEE802.5), nút mạng kết nối theo vòng Với Ethernet, nút gửi thơng điệp khơng có gói tin mạng Với Token Ring nút có quyền truy xuất tới mạng theo thứ tự định trước Một token lưu chuyển vòng quanh vòng, nút lệnh có thẻ gửi thông điệp Ngày nay, Ethernet thay dần mạng Token Ring mạng tốn khó cài đặt AppleTalk giao thức mạng LAN phát triển Apple tương đối phổ biến trường học, nhà máy, ATM giao thức khác tìm thấy mạng LAN Nó hỗ trợ mạng tốc độ cao sử dụng kỹ thuật chuyển mạch có đảm bảo chất lượng dịch vụ 1.3 Các thành phần vật lý Một vấn đề quan trọng để biết mạng biết phần cứng Chúng ta xem xét thành phần chủ yếu mạng LAN sau:  o Thiết bị giao tiếp mạng o Hub o Switch o Router Thiết bị giao tiếp mạng (Network Interface Thiết bị) NIC thiết bị giao tiếp sử dụng để kết nối thiết bị với mạng LAN Nó cho phép gửi nhận thông điệp từ mạng Một NIC có địa MAC mà cung cấp định danh cho thiết bị Địa MAC số 12 byte-hệ 16 gán cho thiết bị mạng Địa thay đổi trình điều khiển mạng cách linh hoạt (như trường hợp hệ thống DECnet, mạng phát triển Digital Equipment), thông thường địa MAC không thay đổi Ta tìm địa MAC máy sử dụng hệ điều hành Windows cách dùng tiện ích dịng lệnh ipconfig DOS với tham số switch Hình 1.1 Sưu tầm bởi: www.daihoc.com.vn  Hub Nhiều thiết bị kết nối cách dễ dàng với giúp đỡ hub Hub thiết bị kết nối gắn nhiều thiết bị vào LAN Mỗi thiết bị thường kết nối thông qua cáp tới cổng hub Hub hoạt động chuyển tiếp Khi chuyển thơng điệp từ cổng tới cổng khác, chuyển tới mạng Hub thành phần tương đối đơn giản mạng, hoạt động tầng vật lý để truyền liệu mà không cần thao tác xử lý Điều làm cho hub dễ cài đặt quản lý, chúng khơng địi hỏi cấu hình đặc biệt  Switch Các chuyển mạch (switch) phân chia mạng thành đoạn (segment) So với hub, switch thiết bị thông minh nhiều Switch lưu trữ địa MAC thiết bị kết nối tới cổng bảng lookup Các bảng lookup cho phép switch lọc thông điệp mạng khơng giống với hub, khơng chuyển tiếp thơng điệp tới cổng Điều loại bỏ xung đột xảy mạng đạt hiệu tốt Chức chuyển mạch thực cách sử dụng phần cứng  Router Router thiết bị trung gian mạng, kết nối nhiều mạng vật lý Một mạng có nhiều host phân chia thành phần riêng, hay gọi subnet Ưu điểm subnet là: Hiệu cải thiện cách giảm broadcast, broadcast thông điệp gửi tới tất nút mạng Khả hạn chế người dùng mạng xác định đưa ưu điểm bảo mật Các subnet nhỏ dễ quản lý so với mạng lớn Các router không sử dụng LAN, chúng có vai trị quan trọng WAN Router nhận thông điệp chuyển tiếp tới đích cách sử dụng đường tốt tới đích Một Router lưu giữ bảng định tuyến liệt kê tất cách mà mạng đạt tới Thơng thường có số đường từ mạng tới mạng khác, có số tốt nhất, đường mơ tả bảng định tuyến Các router truyền tin cách sử dụng giao thức định tuyến để phát router khác mạng, hỗ trợ cho việc trao đổi thông tin mạng gắn với định tuyến Thông tin mà định tuyến thu thập đường mạng gọi độ đo router, bao gồm thơng tin mát gói tin thời gian truyền tin Thông tin sử dụng để tạo độ đo tùy thuộc vào giao thức định tuyến: Giao thức định tuyến vectơ khoảng cách Các giao thức RIP(Routing Information Protocol) IGRP(Interior Gateway Routing Protocol) sử dụng biến đếm để số router mà gói tin phải qua để đến đích Các giao thức thường lựa chọn đường với router, mà không quan tâm đến tốc độ độ tin cậy Các giao thức định tuyến trạng thái liên kết Việc tính tốn đường tốt giao thức định tuyến OSPF BGP quan tâm đến nhiều yếu tố tốc độ, độ tin cậy, chí chi phí đường Các giao thức định tuyến lai Sưu tầm bởi: www.daihoc.com.vn Một số địa IP số mơ hình địa có ý nghĩa đặc biệt Ví dụ, 127.0.0.1 địa loopback Các địa IPv4 khoảng 224.0.0.0 tới 239.255.255.255 địa multicast  Java 1.5 thêm vào hai phương thức cho lớp InetAddress cho phép ứng dụng kiểm tra liệu nút cụ thể có đến hay khơng với nút xuất phát nút hành; nghĩa kiểm tra xem liên kết mạng thiết lập hay chưa Các liên kết bị phong tỏa nhiều ngun nhân firewall, server ủy quyền, router hoạt động sai chức năng, dây cáp bị đứt, host xa không bật  public boolean isReachable(int timeout) throws IOException  public boolean isReachable(NetworkInterface interface, int ttl, int timeout) throws IOException Các phương thức cố gắng kết nối cổng echo host xa để tìm xem đến hay khơng Nếu host đáp ứng khoảng thời gian timeout mili giây, phương thức trả giá trị true đến được, ngược lại trả giá trị false 1.3 Một số chương trình minh họa Ví dụ :Viết chương trình nhập hostName từ đối dịng lệnh in dịng thơng báo cho biết địa IP tương ứng với địa IP thuộc lớp import java.net.*; public class PhanLoaiDCIP { public static void main(String[] args) { try{ if(args.length!=1) { System.out.println("Cach su dung: java TimDCIP "); } InetAddress host = InetAddress.getByName(args[0]); String hostName = host.getHostName(); System.out.println("Host name:"+hostName); System.out.println("Dia chi IP:"+host.getHostAddress()); byte[] b=host.getAddress(); int i=b[0]>=0?b[0]:256+b[0]; if((i>=1)&(i=0?b[0]:256+b[0] Vì ta biết Java kiểu byte kiểu số nguyên có dấu có khoảng giá trị từ -128 đến 127 Do vậy, dòng lệnh int i=b[0]>=0?b[0]:256+b[0] làm nhiệm vụ chuyển đổi số nguyên có dấu dạng bù dạng số nguyên không dấu Lớp URL Cách đơn giản để chương trình Java định vị tìm kiếm liệu sử dụng đối tượng URL Bạn không cần phải lo lắng tới chi tiết bên giao thức sử dụng, khuôn dạng liệu nhận, hay làm để truyền tin với server; bạn cần cho biết URL, Java lấy liệu cho bạn Lớp java.net.URL khái niệm định vị tài nguyên thống Nếu lưu trữ URL dạng đối tượng String khơng có lợi so với việc tổ chức URL đối tượng với trường : giao thức (protocol), hosname, cổng (port), đường dẫn (path), tên tập tin (filename), mục tài liệu (document section), trường thiết lập cách độc lập 2.1 Tạo URL Có bốn constructor, khác thơng tin mà cần Constructor mà bạn sử dụng phụ thuộc vào thơng tin mà bạn có, khn dạng URL Tất constructor đưa ngoại lệ MalformedURLException (URL không khuôn dạng) ta tạo URL cho giao thức mà khơng hỗ trợ.URL cung cấp hàm cấu tử sau:  public URL(String url) throws MalformedURLException Đây constructor đơn giản nhất; tham số URL dạng xâu Ví dụ try{ URL u = new URL(“http://www.sun.com/index.html”); } catch(MalformedURLException e) { System.err.println(e); } public URL(String protocol, String host, String file) throws MalformedURLException Constructor xây dựng URL từ xâu phân biệt xác định giao thức, hostname, tệp tin Port thiết lập -1 cổng mặc định cho giao thức sử dụng  Ví dụ 105 Sưu tầm bởi: www.daihoc.com.vn try{ URL u = new URL(“http”,”/www.sun.com”,”index.html”); } catch(MalformedURLException e){ System.err.println(e); } public URL(String protocol, MalformedURLException  String host, int port, String file) throws Trong số trường hợp cổng mặc định khơng đúng, constructor cho phép bạn xác định cổng cách rõ ràng, số kiểu int Các tham số khác giống Ví dụ try{ URL u = new URL(“http”,”/www.sun.com”,80,”index.html”); } catch(MalformedURLException e){ System.err.println(e); } public URL(URL u, String s) throws MalformedURLException  Hàm cấu tử xây dựng URL tuyệt đối từ URL tương đối; là constructor bạn sử dụng thường xuyên Ví dụ URL u1,u2; try{ URL u1= new URL(“http://www.macfaq.com/index.html”); URL u2 = new URL(u1,”vendor.html”); } catch(MalformedURLException e) { System.err.println(e); } Tên file loại khỏi đường dẫn u1, tên file vendor.html gán vào để tạo lên u2 Constructor đặc biệt hữu ích bạn muốn duyệt qua danh sách file mà tất nằm thư mục 2.2 Phân tích URL thành thành phần Có sáu trường thông tin lớp URL: giao thức, port, file, mục tham chiếu tài liệu  public String getProtocol() Phương thức getProtocol() trả xâu ký tự biểu diễn phần giao thức URL  public String getHost() 106 Sưu tầm bởi: www.daihoc.com.vn Phương thức getHost() trả xâu ký tự biểu diễn phần hostname URL  public int getPort() Phương thức getPort() trả số nguyên kiểu int biểu diễn số hiệu cổng có URL  public int getDefaultPort() Phương thức getDefautlPort() trả số hiệu cổng mặc định cho giao thức URL  public String getFile() Phương thức getFile() trả xâu ký tự chứa phần đường dẫn URL; Java không phân chia URL thành phần đường dẫn phần tệp tin riêng biệt  public String getRef() Phương thức trả phần định danh đoạn URL Ví dụ: Viết chương trình nhập vào URL từ đối dòng lệnh hiển thị thành phần tạo nên URL lên hình //Chương trình lấy thông tin URL với thông tin nhập từ bàn phím import java.net.*; class getURLParts{ public static void main(String[] args) { try { URL u = new URL(args[0]); System.out.println("URL is "+u); System.out.println("The protocol part is "+u.getProtocol()); System.out.println("The host part is "+u.getHost()); System.out.println("The file part is "+u.getFile()); System.out.println("The reference part is "+u.getRef()); } catch(MalformedURLException e) { System.err.println(e); } } } Kết thực chương trình sau: 107 Sưu tầm bởi: www.daihoc.com.vn Hình 5.1 2.3 Tìm kiếm liệu từ URL Nếu có URL túy khơng có thú vị Điều thú vị liệu nằm tệp tin mà trỏ tới Lớp java.net.URL có ba phương thức để tìm kiếm liệu từ URL public final InputStream openStream() throws java.io.IOException  Phương thức kết nối tới tài nguyên tham chiếu URL, thực chế bắt tay cần thiết client server, trả luồng nhập InputStream Ta sử dụng luồng để đọc liệu Dữ liệu nhận từ luồng liệu thô tệp tin mà URL tham chiếu (mã ASCII đọc tệp văn bản, mã HTML đọc tài liệu HTML, ảnh nhị phân ta đọc file ảnh) Nó khơng có thơng tin header thơng tin có liên quan đến giao thức public URLConnection openConnection() throws java.io.IOException  Phương thức opeConnection() mở socket tới URL xác định trả đối tượng URL Một đối tượng URLConnection biểu diễn liên kết mở tới tài nguyên mạng Nếu lời gọi phương thức thất bại đưa ngoại lệ IOException public final Object getConetent() throws java.io.IOException  Phương thức cung cấp cách thứ ba để tải liệu tham chiếu URL Phương thức getContent() tìm kiếm liệu tham chiếu URL chuyển thành kiểu đối tượng Nếu đối tượng tham chiếu tới kiểu đối tượng văn tệp tin ASCII tệp HTML, đối tượng trả thông thường kiểu luồng nhập InputStream Nếu URL tham chiếu tới đối tượng ảnh ảnh GIF JPEG phương thức getContent() trả đối tượng java.awt.ImageProducer Ví dụ:Viết chương trình nhập URL từ bàn phím, kết nối với Internet hiển thị mã nguồn trang Web lên hình import java.net.*; import java.io.*; public class ViewSource { public static void main(String[] args) { URL u; String thisLine; if(args.length>0){ 108 Sưu tầm bởi: www.daihoc.com.vn try{ u =new URL(args[0]); try{ DataInputStream dis = new DataInputStream(u.openStream()); while((thisLine=dis.readLine())!=null) System.out.println(thisLine); } catch(IOException e) { System.err.println(e); } } catch(MalformedURLException e){ System.err.println(e); } } } } Kết thực chương trình 2.4 Các phương thức tiện ích Lớp URL cung cấp hai phương thức tiện ích để thực thao tác URL Phương thức sameFile() xác định xem hai URL có trỏ tới tài liệu hay không Phương thức toExternalForm() chuyển đổi đối tượng URL thành xâu ký tự sử dụng liên kết HTML hộp thoại trình duyệt  public boolean sameFile(URL other) Lớp URLConnection URLConnection lớp trừu tượng biểu diễn liên kết tích cực tới tài nguyên xác định URL Lớp URLConnection có hai mục đích khác liên quan với  Thứ nhất, cung cấp nhiều khả điều khiển thông qua việc tương tác với server khơng phải lớp URL Với URLConnection ta kiểm tra headerMIME gửi Http Server phản ứng tương ứng Ta sử dụng lớp URLConnection để tải tệp nhị phân Ngoài URLConnection cho phép bạn gửi liệu trở lại Web server lệnh POST Chúng ta xem tất kỹ thuật chương  Thứ hai, URLConnection phần chế quản trị giao thức, chế bao gồm lớp URLStreamHandler Ý tưởng đằng sau trình quản trị giao thức đơn giản: chúng cho phép bạn phân tách chi tiết xử lý giao thức với việc xử lý kiểu liệu cụ thể, cung cấp giao diện người dùng, thực 109 Sưu tầm bởi: www.daihoc.com.vn cơng việc khác mà trình duyệt thường làm Lớp sở URLConnection lớp trừu tượng; để cài đặt giao thức cụ thể bạn cần phải viết lớp Các lớp tải ứng dụng riêng bạn hay trình duyệt HotJava; tương lai, ứng dụng Java tải trình quản trị giao thức cần Mở URLConnection Một chương trình sử dụng lớp URLConnection trực dãy bước sau:  Xây dựng đối tượng URL  Gọi phương thức openConnection() đối tượng URL để tìm kiếm đối tượng URLConnection cho URL  Cấu hình đối tượng URL  Đọc trường header  Nhận luồng nhập đọc liệu  Nhận luồng xuất ghi liệu  Đóng liên kết Tuy nhiên, khơng phải lúc ta phải thực tất bước Ví dụ:Mở URLConnection tới http:// www.microsoft.com import java.net.*; import java.io.*; public class getURLConnection { public static void main(String[] args) { URL u; URLConnection uc; try { u= new URL("http://www.microsoft.com"); try { uc=u.openConnection(); } catch(IOException e) { System.err.println(e); } } catch(MalformedURLException e) { 110 Sưu tầm bởi: www.daihoc.com.vn System.err.println(e); } } } Mặc dù lớp URLConnection lớp trừu tượng có phương thức cài đặt Phương thức connect(); phương thức tạo liên kết tới server; phụ thuộc vào kiểu dịch vụ mà ta cài đặt (HTTP, FTP, ) Tất nhiên, ta cảm thấy tiện lợi hay cần thiết phải nạp chồng phương thức lớp Rất nhiều phương thức trường lớp URLConnection có phương thức protected Mặt khác ta truy cập tới chúng thơng qua thể lớp URLConnection lớp Rất khởi tạo truy cập trực tiếp đối tượng; thay vào đó, mơi trường thời gian chạy tạo đối tượng cần tùy thuộc vào giao thức sử dụng Sau lớp khởi tạo cách sử dụng phương thức forName() newInstance() lớp java.lang.Class  public abstract void connect() throws IOException Phương thức connect() phương thức trừu tượng mở liên kết tới server Tên server lấy từ URL lưu trữ trường URLConnection, thiết lập constructor lớp Các lớp lớp URLConnection nạp chồng phương thức để quản lý kiểu liên kết cụ thể Ví dụ, phương thức connect() lớp FileURLConnection chuyển đổi URL thành filename thư mục tương ứng, tạo thông tin MIME cho file, mở luồng FileInputStream tới file Phương thức connect() lớp HttpURLConnection tạo đối tượng HttpClient để kết nối với server Phương thức openConnection() đối tượng URL gọi phương thức connect() tương ứng, trả liên kết mở Vì ta cần phải gọi phương thức connect() cách trực tiếp Đọc liệu từ server Dưới bước tối thiểu cần để tìm kiếm liệu từ URL cách sử dụng đối tượng URLConnection:  o Bước 1: Xây dựng đối tượng URL o Bước 2: Gọi phương thức openConnection() lớp URL để tìm kiếm đối tượng URL Connection cho đối tượng URL o Bước 3: Gọi phương thức getInputStream() o Bước 4: Đọc từ luồng nhập cách sử dụng API public Object getContent() throws IOException Phương thức mặt ảo giác giống phương thức getContent() lớp URL Thực tế, phương thức URL.getContent() việc gọi phương thức getContent() tải đối tượng chọn URL URLConnection Để phương thức getContent() hoạt động, môi trường cần nhận dạng hiểu kiểu nội dung Hiện có số kiểu nội dung hiểu text/plain, image/gif, image/jpeg Bạn cài đặt thêm kiểu trình quản lý nội dung khác hiểu kiểu nội dung khác Phương thức getContent() làm việc với giao thức HTTP mà có hiểu biết rõ ràng kiểu nội dung MIME Nếu kiểu nội dung trước, giao thức khơng hiểu kiểu nội dung, ngoại lệ UnknownServicException đưa  public InputStream getInputStream() Phương thức getContent() làm việc Java có trình quản lý nội dung cho kiểu nội dung Nếu trường hợp này, bạn có lẽ cần luồng InputStream chung, luồng cho phép bạn tự đọc phân tích liệu Để làm 111 Sưu tầm bởi: www.daihoc.com.vn vậy, cần gọi phương thức getInputStream() Phương thức hữu ích trình quản lý nội dung có sẵn khơng thực xác mà bạn muốn Ví dụ: Tải trang web thơng qua URL import java.net.*; import java.io.*; public class viewsource { public static void main(String[] args) { String thisLine; URL u; URLConnection uc; if(args.length>0) { try{ u =new URL(args[0]); try{ uc=u.openConnection(); DataInputStream DataInputStream(uc.getInputStream()); theHtml = new try{ while((thisLine=theHtml.readLine())!=null) { System.out.println(thisLine); } } catch(Exception e) { System.err.println(e); } } catch(Exception e) { System.err.println(e); } } catch(MalformedURLException e) { System.err.println(args[0]+" is not a parseable URL"); 112 Sưu tầm bởi: www.daihoc.com.vn System.err.println(e); } } } } Phương thức openStream() lớp URL trả đối tượng InputStream từ đối tượng URLConnection  public OutputStream getOutputStream() Đôi bạn cần phải ghi liệu vào URLConnection-chẳng hạn bạn muốn gửi liệu tới web server sử dụng lệnh POST Phương thức getOutputStream() trả luồng OutputStream bạn ghi liệu để truyền tới server Vì URLConnection không cho phép xuất kết chế độ mặc định, bạn phải gọi phương thức setDoOutput() trước yêu cầu luồng xuất Mỗi bạn có luồng OutputStream thơng thường bạn phải gắn với luồng DataOutputStream lớp khác lớp OutputStream mà đưa nhiều đặc trưng Ví dụ: try{ URL u = new URL(“http:// www.somehost.com/cgi-bin/acgi”); URLConnection uc = u.openConnection(); uc.setDoOutput(true); DataOutputStream dos = new DataOutputStream(uc.getOutputStream()); dos.writeByte(“Herre is some data”); } catch(Exception e) { System.err.println(e); } Sự khác biệt URL URLConnection là:  URLConnection cho phép truy xuất tới header HTTP  URLConnection cấu hình tham số yêu cầu gửi cho server  URLConnection ghi liệu lên server đọc liệu từ server 3.1 Phân tích Header HTTP Server cung cấp số lượng thông tin đáng kể header MIME trước đáp ứng Thông tin header MIME bao gồm chế mã hóa nội dung sử dụng, ngày giờ, chiều dài nội dung trả byte, ngày hết hạn nội dung, ngày mà nội dung sửa đổi lần cuối Tuy nhiên, thông tin gửi phụ thuộc vào server; server gửi tất thông tin cho yêu cầu, server khác gửi thơng tin đó, số server khơng gửi thơng tin Các phương thức mục cho phép ta truy vấn URLConnection để tìm thơng tin MIME mà server cung cấp 113 Sưu tầm bởi: www.daihoc.com.vn Ngoài HTTP, giao thức sử dụng header MIME Khi viết lớp lớp URLConnection, thông thường cần phải nạp chồng phương thức cho chúng trả giá trị có ý nghĩa Phần thơng tin quan trọng bạn thiếu kiểu nội dung MIME URLConnection cung cấp số phương thức tiện ích mà trợ giúp bạn đốn nhận kiểu nội dung, dựa tên file số byte liệu  public String getContentType()  Phương thức trả kiểu nội dung MIME liệu Nó phụ thuộc vào web server gửi header MIME tương ứng, bao gồm kiểu nội dung xác thực Nó khơng đưa ngoại lệ trả giá trị null kiểu nội dung khơng có text/htm kiểu nội dung mà bạn thường xuyên gặp kết nối với web server Các kiểu nội dung phổ biến khác bao gồm: text/plain, image/gif, image/jpeg public int getContentLength() Phương thức cho ta biết nội dung có kích thước byte Rất nhiều server gửi header độ dài nội dung chúng truyền file nhị phân, truyền file văn Nếu khơng có chiều dài nội dung, phương thức getContentLength() trả -1 Phương thức khơng đưa ngoại lệ Nó sử dụng ta cần biết cần đọc byte, ta cần tạo buffer đủ lớn để lưu trữ liệu  public String getContentEncoding() Phương thức trả String cho ta biết cách thức mã hóa Nếu nội dung gửi khơng mã hóa (như trường hợp HTTP server), phương thức trả giá trị null Nó khơng đưa ngoại lệ  public long getDate() Phương thức getDate() trả số nguyên kiểu long cho bạn biết tài liệu gửi Ta chuyển đổi sang đối tượng kiểu java.util.Date Ví dụ: Date docSent = new Date(uc.getDate()); Đây thời gian tài liệu gửi server Nếu header MIME header Date  public long getExpiration()  public long getLastModified() Phương thức date, getLastModified(), trả ngày mà tài liệu sửa đổi lần cuối Ví dụ: Đọc URL từ dòng lệnh, sử dụng phương thức để in kiểu nội dung, chiều dài nội dung, mã hóa nội dung, ngày sửa đổi cuối cùng, ngày hết hạn, ngày hành 3.2 Tìm kiếm trường Header MIME Sáu phương thức cuối đòi hỏi trường định từ header MIME, giới hạn số trường header mà thơng điệp MIME có Năm phương thức kiểm tra trường định header MIME FileURLConnection khơng có header MIME thực , tất phương thức trả giá trị null bạn làm việc với file: URL, hành vi mặc định chúng HttpURLConnections tìm trường header để thỏa mãn yêu cầu bạn Nếu tìm thấy, trả về, ngược lại trả giá trị null  public String getHeaderField(String name) 114 Sưu tầm bởi: www.daihoc.com.vn Phương thức getHeaderField() trả giá trị trường header MIME đặt tên Tên header không phân biệt chữ hoa chữ thường khơng chứa dấu kết thúc Ví dụ, để tìm giá trị trường header Content-type, Content-encoding đối tượng URLConnection uc bạn viết: uc.getHeaderField(“content-type”); uc.getHeaderField(“content-encoding”); Để nhận thông tin trường Date, Content-length, Expiration bạn thực tương tự: uc.getHeaderField(“date”); uc.getHeaderField(“expires”); uc.getHeaderField(“Content-length”); Tất phương thức trả String, int long phương thức getContentLength(); getExpirationDate(), getLastModified(), getDate() Nếu bạn quan tâm đến giá trị số, bạn phải chuyển đổi String thành long int  public String getHeaderFieldKey(int n) Phương thức trả khóa (nghĩa tên trường: ví dụ, Content-length Server) trường header thứ n Header Ví dụ, để nhận khóa thứ header MIME URLConnection, bạn viết: String header5=uc.getHeaderFieldKey(5);  public String getHeaderField(int n) Phương thức trả giá trị trường header MIME thứ n Header MIME Ví dụ: Sử dụng phương thức kết hợp với phương thức getHeaderFieldKey()để in header MIME  public long getHeaderFieldDate(String name, long default) Phương thức trước hết tìm kiếm trường header xác định tham số name cố gắng chuyển đổi xâu sang kiểu long 3.3 Các phương thức RequestProperty Bốn phương thức sau không thực công việc lớp sở URLConnection, khơng cài đặt lớp FileURLConnection HttpConnection Bạn mong muốn nạp chồng chúng lớp để cài đặt phương thức tra cứu bảng băm, chẳng hạn để xây dựng bảng băm chứa tất header MIME yêu cầu  public String getRequestProperty(String property_name) Phương thức đưa ngoại lệ IllegalAccesError liên kết mở, ngược lại phương thức trả giá trị null Nếu bạn nạp chồng nó, phương thức bạn cần trả giá trị gắn với thuộc tính cho trước xâu  public static void property_value) setDefaultRequestProperty(String property_name, String Phương thức khơng thực cơng việc Nếu bạn nạp chồng phương thức này, bạn sử dụng để lưu trữ giá trị mặc định cho thuộc tính cho trước 115 Sưu tầm bởi: www.daihoc.com.vn public void setRequestProperty(String property_name, String property_value)  Phương thức trả ngoại lệ IllegalAccessError liên kết mở Ngược lại khơng thực Nếu bạn nạp chồng nó, bạn sử dụng để lưu trữ giá trị thuộc tính cho trước public String getDefaultRequest(String property_name)  Phương thức trả giá trị null Nếu bạn nạp chồng phương thức này, bạn cần trả giá trị mặc định gán cho thuộc tính cho trước String protected URLConnection(URL u)  Contructor URLConnection nhận tham số URL để thực việc liên kết Tất tính chất khác URLConnection ban đầu thiết lập giá trị mặc định chúng bạn thay đổi chúng tập phương thức Vì constructor có tính chất protected, có đối tượng gói java.net tạo URLConnection URLConnection lớp trừu tượng bạn gọi constructor từ constructor lớp Nếu bạn tạo lớp lớp URLConnection, bạn phải gọi constructor dòng đầu constructor lớp sau: myURLConnection(URL u) { super(u); } Nếu bạn không đưa vào lời gọi cụ thể tới constructor lớp bạn, Java cố gắng tạo constructor khơng tham số lớp cha: ví dụ URLConnection() Vì lớp URLConnection không cung cấp constructor không tham số, loại bỏ lời gọi cụ thể gây lỗi biên dịch 3.4 Các trường phương thức có liên quan Có mười ba trường lớp java.net URLConnection Bảy trường biến tĩnh định nghĩa giá trị mặc định cho thể lớp URLConnection Sáu phương thức khác định nghĩa trạng thái đối tượng URLConnection cụ thể Một vài phương thức get set thay đổi giá trị chúng Hầu hết phương thức thiết lập trường đưa ngoại lệ IllegalAccessExceptions bạn gọi chúng liên kết mở Nhìn chung, bạn thiết lập thuộc tính đối tượng URLConnection liên kết đóng  protected URL url public URL getURL()  Trường url xác định URL mà URLConnection liên kết tới Nó thiết lập constructor bạn tạo URLConnection, không cần thay đổi Bạn tìm kiếm giá trị cách gọi phương thức getURL() import java.net.*; import java.io.IOException; public class printURLConnection { public static void main(String[] args) { 116 Sưu tầm bởi: www.daihoc.com.vn URL u; URLConnection uc; try{ u = new URL("http://www.ora.com/"); try { uc=u.openConnection(); System.out.println(uc.getURL()); } catch(IOException e) { System.err.println(e); } } catch(MalformedURLException e) { System.err.println(e); } } }  protected boolean connected Trường connected liên kết mở sai liên kết đóng Vì bạn không mở liên kết đối tượng URLConnection tạo ra, giá trị ban đầu false Bạn truy cập tới biến thông qua thể lớp URLConnection lớp Khơng có phương thức đọc thay đổi giá trị Khi viết trình quản trị giao thức, bạn có nhiệm vụ thiết lập giá trị biến true thiết lập lại giá trị false liên kết đóng Rất nhiều phương thức gói java.net URLConnection đọc biến để xác định xem chúng thực việc Nếu việc thiết lập khơng xác chương trình bạn gặp lỗi khơng dễ chuẩn đoán  protected boolean allowUserInteraction  public void setAllowUserInteraction(boolean allowuserinteraction)  public boolean getAllowUserInteraction() Một số URLConnection cần tương tác với người dùng Ví dụ, trình duyệt web yêu cầu username password Tuy nhiên, nhiều ứng dụng khẳng định người sử dụng có mặt để tương tác với Như ý nghĩa tên, allowUserInteraction xác định xem liệu tương tác người sử dụng có phép hay khơng Ở chế độ mặc định thiết lập false Vì biến protected, ta sử dụng phương thức getAllowUserInteraction()để đọc giá trị sử dụng phương thức setAllowUserInteraction()để thiết lập giá trị Giá trị true tương tác với người sử dụng phép; giá trị false khơng có tương tác với người dùng Giá trị đọc thời điểm nào, thiết lập 117 Sưu tầm bởi: www.daihoc.com.vn liên kết bị đóng Gọi phương thức setAllowUserInteraction() liên kết mở đưa ngoại lệ IllegalAccessError (chứ khơng phải IllegalAccessException) Các chương trình thường khơng đón bắt lỗi (khơng giống ngoại lệ); lỗi khơng đón bắt thường buộc chương trình phải kết thúc 118 Sưu tầm bởi: www.daihoc.com.vn ... Địa 12 7.0.0 .1 địa localhost, địa 12 7.0.0.0 địa loopback Sưu tầm bởi: www.daihoc.com.vn Các địa IP mạng thuộc lớp B ln ln có hai bit byte đầu 10 , đưa khoảng địa 10 000000 (12 8) đên 10 111 111 (19 1)... java.rmi.registry 16 8 10 .1 Giao tiếp Registry 16 8 10 .2 Lớp LocateRegistry 16 8 11 Các lớp giao tiếp gói java.rmi.server 16 9 11 .1 Lớp RemoteObject 16 9 11 .2 Lớp RemoteServer... 82 Chương 4: Lập trình đa tuyến đoạn 83 1. Tổng quan83 1. 1 Lập trình đơn tuyến đoạn 83 1. 2 Lập trình đa tiến trình 83 1. 3 Lập trình đa tuyến đoạn

Ngày đăng: 09/05/2021, 14:59

TỪ KHÓA LIÊN QUAN

w