Sự lựa chọn gi ải pháp n ào chính là s ự thỏa hiệp giữa các đặc trưng của mỗi giải pháp: n ếu đối với RMI th ì đó là tính đơn giản khi triển khai, ngược lại với Socket k ết hợp với [r]
(1)(2)I
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ý
2 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
3 Các giao thức mạng
3.1 Các giao thức
3.2 Các giao thức Internet 14
4 Soket 17
5 Dịch vụ tên miền 17
5.1 Các server tên miền 18
5.2 Nslookup 19
6 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
1 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
2 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
(3)II
Chương 3: Các luồng vào 59
1 Khái niệm luồng Java 59
1.1 Khái niệm luồng(stream) 59
2 Luồng xuất nhập chuẩn 60
3 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
4 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
5 Luồng đệm 73
6 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
7 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
2 Tạo ứng dụng đa tuyến đoạn với lớp Thread 86
3 Tạo ứng dụng đa tuyến đoạn với giao tiếp Runnable 87
4 Sự đồng hóa 88
4.1 Các phương thức synchronized 88
4.2.Lệnh synchronized 89
5 Phương thức wait notify 90
6 Lập lịch cho tuyến đoạn 91
7 Hoài vọng-Deadlock 92
8 Đ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
(4)III
9 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
1 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
2 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
3 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
1 Mơ hình client/server 119
2 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
3 Mơ hình truyền tin socket 122
4 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
5 Lớp ServerSocket 128
5.1 Các constructor 128
5.2 Chấp nhận ngắt liên kết 129
6 Các bước cài đặt chương trình phía Client Java 131
7 Các bước để cài đặt chương trình Server Java 134
8 Ứng dụng đa tuyến đoạn lập trình Java 136
9 Kết luận 141
Chương 7: Lập trình ứng dụng cho giao thức UDP 142
1 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
(5)IV
2.1 Các constructor để nhận datagram 145
2.2 Constructor để gửi datagram 146
3 Lớp DatagramSocket 148
4 Nhận gói tin 148
5 Gửi gói tin 150
6 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
2 Mục đích RMI 159
3 Một số thuật ngữ 160
4 Các lớp trung gian Stub Skeleton 160
5 Cơ chế hoạt động RMI 160
6 Kiến trúc RMI 163
7 Cài đặt chương trình 164
8 Triển khai ứng dụng 166
9 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
1 JDBC Java Database Connectivity API 171
2 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
3 Kết nối sở liệu 176
3.1 DriverManager 176
3.2 Connection 176
3.3 Statement 177
3.4 ResultSet 177
4 Lớp DatabaseMetaData 178
5 Lớp ResultSetMetaData 179
6 Các bước để kết nối với sở liệu từ ứng dụng Java 180
7 Sử dụng PreparedStatement 185
8 Sử dụng giao tác 187
(6)4 Kết luận
Qua báo đã giới thiệu tổng quan hóa đối tượng Thơng qua ví dụ thấy khơng q khó để làm việc với hóa đối tượng điều quan trọng đã biết cách để truyền các đối tượng có cấu trúc phức tạp thông qua Socket
Ngoài ra, báo cũng đã đề cập tới cách truyền đối tượng cách sử dụng gói tin datagram Nhờ ưu điểm tiện ích tuần tự hóa đối tượng, tơi đã minh họa cách truyền đối tượng cách sử dụng gói tin datagram Như đã thấy, mặc dù giao thức này không hỗ trợ xử lý theo luồng liệu đã “luồng hóa” đối tượng để đưa đối tượng vào mảng byte.
(7)90
TÀI LIỆU THAM KHẢO
[1] Elliotte Rusty Harold, Java Network Programming
[2] Nguyễn Phương Lan- Hoàng Đức Hải, Java lâp trình mạng, Nhà xuất Giáo dục
[3] Darrel Ince & Adam Freemat, Programming the Internet with Java, Addison-Wesley
[4] Mary Campione&Kathy Walrath&Alison Huml, Java™ Tutorial, Third Edition: A Short Course on the Basics, Addison Wesley
[5] The Complete Java 2Reference
[6] Nguyễn Thúc Hải, Mạng máy tính hệ thống mở, Nhà xuất Giáo dục [7] Đoàn Văn Ban, Lập trình hướng đối tượng với Java, Nhà xuất Khoa học Kỹ thuật
Tài liệu tham khảo
[1] Douglas E.Comer, David L.Stevens, Client-Server Programming And Applications In book: Internetworking with TCP/IPVolume III, Pearson Education, Singapore, 2004
[2] Herbert Schildt, JavaTM 2: The Complete Reference Fifth Edition, Tata McGraw-Hill Publishing Company Limited, India, 2002
[3] Elliote Rusty Harold, JavaTM Network Programming, Third Edition, Oreilly, 2005
[4] Qusay H Mahmoud, Advanced Socket Programming, http://java.sun.com, December 2001