http://www.ebook.edu.vn
Li m đầu
Lp trình mng là mt trong nhng nhim v căn bn để phát trin các ng dng
doanh nghip. Mt chương trình mng được viết ra để các chương trình trên các máy
tính khác nhau có th truyn tin vi nhau mt cách hiu qu và an toàn cho dù chúng
được cài đặt trên mng LAN, WAN hay mng toàn cu Internet, đây là điu căn bn đối
vi s thành công ca nhiu h thng.
Java là ngôn ng lp trình hướng đối tượng thun túy vi nhiu đặc trưng ưu vit
so vi các ngôn ng lp trình hướng đối tượng khác như tính độc lp vi nên, tính bo
mt,…Java là ngôn ng ngay t khi ra đời đã hướng đến lp trình mng nên vic viết mt
chương trình lp trình mng bng Java d dàng hơn nhiu so vi các ngôn ng khác.
Giáo trình này bao gm 10 chương:
Chương 1: Gii thiu nhng khái nim căn bn v mng máy tính để người đọc có
th tiếp cn vi các chương tiếp theo. Trong chương này chúng ta s đi vào xem xét
mng vt lý, phn cng được s dng trong các mng LAN. Tiếp theo chúng ta s tìm
hiu mô hình phân tng OSI by tng, và s tương ng ca h giao thc TCP/IP vi các
tng trong mô hình OSI. Sau đó chúng ta s đi vào tìm hiu các giao thc mng, giao
thc Internet, và giao thc e-mail.
Chương 2: Gii thiu ngôn ng lp trình Java. Chương này trình bày các khái nim
căn bn v ngôn ng lp trình Java. Gii thiu lch s phát trin và cu trúc ca máy o
Java. Nhng đặc trưng đã to nên sc mnh ca ngôn ng Java cũng được gii thiu
trong chương này. Cũng trong chương này chúng ta s đi vào tìm hiu cách cu hình và
cài đặt môi trường biên dch, chy và son tho ngôn ng Java. Tiếp đến ta s đi vào tìm
hiu các thành phn cơ bn ca Java như kiu d liu, cu trúc lnh tun t r nhánh,
lp, và nhy. Tiếp theo chúng ta s đi vào tìm hiu các khái nim liên quan đến lp trình
hướng đối tượng trong Java như lp, phương thc, thuc tính, các t khóa b tr như
static, final, abstract, tha kế và tính đa hình trong Java. Mt trong nhng khái nim mi
mà các ngôn ng truyn thng trước đây không có là ngoi lđón bt ngoi l trong
Java cũng được gii thiu.
Chương 3: Các lung vào ra. Chương này gii thiu khái nim vào ra bng các
lung d liu. Trước tiên ta s tìm hiu v các lung và ý nghĩa ca lung trong chương
trình Java. Tiếp đến chúng ta s ln lượt tìm hiu các lung vào ra chun trong gói làm
vic vi console. Các lung tru tượng java.io.InputStream, java.io.OutputStream là các
lung cơ bn để t đó xây dng nên các lung c th. Lung được chia thành các nhóm
như lung byte và lung ký t. T phiên bn Java 1.4 mt đặc trưng vào ra mi trong
Java được đưa vào cũng được gii thiu trong chương này. Vic nm vng kiến thc
chương này cũng giúp cho vic lp trình ng dng mng tr nên đơn gin hơn vì thc
cht ca vic truyn và nhn d liu gia các ng dng mng là vic đọc và ghi các
lung.
Chương 4: Lp trình đa tuyến đon. Trong các ngôn ng lp trình trước đây các
ng dng hu hết là các ng dng đơn tuyến đon. Để tăng tc độ x lý và gii quyết vn
đề tương tranh ca các ng dng nói chung và ng dng mng nói riêng ta cn s dng
khái nim đa tuyến đon. Phn đầu ca chương này trình bày các khái nim căn bn v
tiến trình, tuyến đon. Tiếp đến chúng ta s xem xét các cách cài đặt mt ng dng tuyến
đon trong Java bng lp Thread và thc thi giao tiếp Runnable. Sau đó ta s đi vào tìm
hiu các phương thc ca lp Thread. S đồng b hóa và cách cài đặt mt chương trình
đồng b hóa cũng được gii thiu trong chương này.
Chương 5: Lp trình mng vi các lp InetAddress, URL và URLConnection. Lp
InetAddress là lp căn bn đầu tiên trong lp trình mng mà ta cn tìm hiu. Nó ch ra
cách mt chương trình Java tương tác vi h thng tên min. Tiếp đến ta s đi vào tìm
hiu các khái nim v URI, URL,URN và lp biu din URL trong Java. Cách s dng
URL để ti v thông tin và tp tin t các server. Sau đó ta đi vào tìm hiu lp
URLConnection, lp này đóng vai trò như mt động cơ cho lp URL.
http://www.ebook.edu.vn
Chương 6: Lp trình Socket cho giao thc TCP. Trong chương này chúng ta s tìm
hiu cách lp trình cho mô hình client/server và các kiu kiến trúc client/server. Các lp
Socket và ServerSocket được trình bày chi tiết trong chương này để lp các chương trình
cho giao thc TCP.
Chương 7: Lp trình ng dng cho giao thc UDP. Chương này gii thiu giao
thc UDP và các đặc trưng ca giao thc này. Tiếp đến ta đi vào tìm hiu các lp
DatagramPacket và DatagramSocket để viết các chương trình ng dng mng cho giao
thc UDP.
Chương 8: Tun t hóa đối tượng và ng dng trong lp trình mng. Trình bày các
vn đề v tun t hóa và ng dng ca tun t hóa trong lp trình mng.
Chương 9: Phân tán đối tượng bng Java RMI. Chương này tìm hiu ch đề v lp
trình phân tán đối tượng bng k thut gi phương thc RMI (Remote Method
Invocation).
Chương 10:X lý cơ s d liu trong Java. Trình bày cách thc kết ni các cơ s
d liu và x lý cơ s d liu bng Java thông qua giao din lp trình ng dng JDBC.
Tìm hiu v lp trình mng tt nht là trên các h thng mng thc s vi nhiu
máy tính được kết ni vt lý. Tuy nhiên trong giáo trình này hu hết các ví d được trình
bày để bn đọc có th lp trình và th nghim các ng dng mng trên các máy đơn.
Mc dù đã hết sc c gng để trình bày giáo trình mt cách d hiu vi các ví d
minh ha giúp bn đọc có th th nghim ngay sau khi tìm hiu các vn đề lý thuyết,
nhưng chc chn giáo trình này không th tránh khi nhng thiếu sót nht định. Rt mong
s góp ý và phê bình ca các bn độc gi. Mi thc mc và góp ý các bn có th gi v
theo địa ch e-mail sau:lequocdinh@vnn.vn hoc hoan_td2001@yahoo.com
Để hoàn thành giáo trình này các tác gi đã nhn được s giúp đỡ rt nhiu t
bn bè, đồng nghip và nhng người thân.
Xin chân thành cm ơn ti tt c mi người.
Nhóm tác gi
http://www.ebook.edu.vn I
MC LC
Li m đầu
Chương 1:Các khái nim căn bn v mng và giao thc ............................................... 1
1. Mng máy tính ....................................................................................................... 1
1.1. Các đường WAN ............................................................................... 1
1.2 .Giao thc Ethernet ............................................................................ 2
1.3. Các thành phn vt lý ........................................................................ 3
2. Mô hình phân tng................................................................................................. 6
2.1. Tng 1:Tng vt lý ............................................................................. 7
2.2. Tng 2: Tng liên kết d liu............................................................. 7
2.3. Tng 3: Tng mng ........................................................................... 7
2.4. Tng 4:Tng giao vn........................................................................ 7
2.5. Tng 5: Tng phiên..............................................................................
2.6. Tng 6:Tng trình din ...................................................................... 7
2.7. Tng 7:Tng ng dng...................................................................... 7
3. Các giao thc mng ............................................................................................... 8
3.1. Các giao thc cơ bn ........................................................................ 8
3.2. Các giao thc Internet ..................................................................... 14
4. Soket ..................................................................................................................... 17
5. Dch v tên min ................................................................................................. 17
5.1. Các server tên min......................................................................... 18
5.2. Nslookup .......................................................................................... 19
6. Internet và Extranet ............................................................................................. 20
6.1. Intranet và Extranet20
6.2. Firewall............................................................................................. 20
6.3. Proxy Server .................................................................................... 20
Chương 2 : Gii thiu ngôn ng lp trình Java ............................................................. 21
1. Gii thiu công ngh Java................................................................................... 21
1.1. Lch s phát trin ............................................................................. 21
1.2. Cu trúc ca máy o Java – Java Virtual Machine......................... 21
1.3. Các đặc trưng ca Java .................................................................. 21
1.4. Các n bn Java.............................................................................. 22
1.5. Công c phát trin ........................................................................... 23
1.6. Các kiu ng dng trong Java ........................................................ 23
1.7. Cài đặt chương trình dch Java và các công c.............................. 23
1.8. Mt s ví d m đầu........................................................................ 25
2. Ngôn ng lp trình Java ....................................................................................... 27
2.1. Cu trúc tp ca mt chương trình Java ........................................ 27
2.2. Định danh, kiu d liu và khai báo biến ........................................ 28
2.3. Các kiu d liu nguyên thy (primitive datatype).......................... 28
2.4. Khai báo các biến ............................................................................ 30
2.5. Các lnh trong Java......................................................................... 31
2.6 Các lp và các đối tượng trong Java ............................................... 36
2.7. Giao tiếp – Interface ........................................................................ 48
2.8. Các gói và s dng gói trong Java.................................................. 50
2.9. Qun lý ngoi l............................................................................... 52
http://www.ebook.edu.vn II
Chương 3: Các lung vào ra .......................................................................................... 59
1. Khái nim v lung trong Java ............................................................................. 59
1.1. Khái nim lung(stream) ................................................................. 59
2. Lung xut nhp chun ........................................................................................ 60
3. Lung nh phân ..................................................................................................... 60
3.1. Lp InputStream .............................................................................. 60
3.2. Lp OutputStream ........................................................................... 61
3.3. Các lung xut nhp mng byte...................................................... 62
3.4. Lung xut nhp tp tin ................................................................... 64
3.5. Truy nhp tp ngu nhiên................................................................ 66
3.6. Lung PrintStream .......................................................................... 68
4. Lung ký t......................................................................................................... 68
4.1. S tương ng gia lung byte và lung ký t................................ 68
4.2. Mã hóa ký t.................................................................................... 69
4.3 Lp Writer ......................................................................................... 70
4.4. Lp Reader...................................................................................... 70
4.5. Lp OutputStreamWriter ................................................................. 70
4.6. Lp InputStreamReader .................................................................. 71
4.7. Lp FileWriter .................................................................................. 71
4.8. Lp FileReader................................................................................ 72
5. Lung đệm ............................................................................................................ 73
6. Lung vào ra mi – New Input Output ................................................................. 74
6.1. Căn bn v NIO ............................................................................... 74
6.2. Buffer (Các vùng đệm) .................................................................... 74
6.3. Các kênh (Channel)......................................................................... 76
6.4. Charset và Selector ......................................................................... 76
6.5. Đọc tp............................................................................................. 77
6.6. Ghi tp tin......................................................................................... 80
7. Kết lun ....................................................................................................................... 82
Chương 4: Lp trình đa tuyến đon ............................................................................... 83
1.Tng quan83
1.1. Lp trình đơn tuyến đon ................................................................ 83
1.2. Lp trình đa tiến trình....................................................................... 83
1.3. Lp trình đa tuyến đon................................................................... 84
2. To các ng dng đa tuyến đon vi lp Thread ............................................... 86
3. To ng dng đa tuyến đon vi giao tiếp Runnable ......................................... 87
4. S đồng ba .................................................................................................... 88
4.1. Các phương thc synchronized...................................................... 88
4.2.Lnh synchronized............................................................................ 89
5. Phương thc wait và notify .................................................................................. 90
6. Lp lch cho tuyến đon........................................................................................ 91
7. Hoài vng-Deadlock ............................................................................................. 92
8. Điu khin tuyến đon .......................................................................................... 94
8.1. Ngt mt tuyến đon Thread........................................................... 94
8.2 Kết thúc vic thc thi mt tuyến đon.............................................. 95
8.3. Tm dng và phc hi vic x lý các tuyến đon .......................... 96
http://www.ebook.edu.vn III
9. Các nhóm tuyến đon –ThreadGroup.................................................................. 96
9.1. To mt nhóm Thread ..................................................................... 98
10. Mt ví d minh ha vic s dng tuyến đon .................................................... 98
11. Kết lun ............................................................................................................. 100
Chương 5: Lp trình mng vi các lp InetAddress, URL và URLConnection .......... 102
1. Lp InetAddress102
1.1. To các đối tượng InetAddress102
1.2. Nhn các trường thông tin ca mt đối tượng InetAddress ......... 103
1.3. Mt s chương trình minh ha ...................................................... 104
2. Lp URL.............................................................................................................. 105
2.1. To các URL .................................................................................. 105
2.2. Phân tích mt URL thành các thành phn .................................... 106
2.3. Tìm kiếm d liu t mt URL ........................................................ 108
2.4. Các phương thc tin ích.............................................................. 109
3. Lp URLConnection109
3.1. M các URLConnection ............................................................... 110
3.2. Đọc d liu t mt server.............................................................. 111
3.3. Phân tích Header........................................................................... 113
Chương 6: Lp trình Socket cho giao thc TCP ......................................................... 119
1. Mô hình client/server .......................................................................................... 119
2. Các kiến trúc Client/Server ................................................................................ 120
2.1. Client/Server hai tng (two-tier client/server)................................ 120
2.2. Client/Server ba tng ..................................................................... 121
2.3. Kiến trúc n-tng ............................................................................. 122
3. Mô hình truyn tin socket ................................................................................... 122
4. Socket cho Client................................................................................................ 124
4.1. Các constructor.............................................................................. 124
4.2. Nhn các thông tin v Socket........................................................ 125
4.3. Đóng Socket .................................................................................. 126
4.4. Thiết lp các tùy chn cho Socket127
4.5. Các phương thc ca lp Object127
4.6. Các ngoi l Socket....................................................................... 127
4.7. Các lp SocketAddress ................................................................. 127
5. Lp ServerSocket ............................................................................................... 128
5.1. Các constructor.............................................................................. 128
5.2. Chp nhn và ngt liên kết............................................................ 129
6. Các bước cài đặt chương trình phía Client bng Java...................................... 131
7. Các bước để cài đặt chương trình Server bng Java ....................................... 134
8. ng dng đa tuyến đon trong lp trình Java ................................................... 136
9. Kết lun ............................................................................................................... 141
Chương 7: Lp trình ng dng cho giao thc UDP..................................................... 142
1. Tng quan v giao thc UDP ............................................................................. 142
1.1 Mt s thut ng UDP.................................................................... 142
1.2. Hot động ca giao thc UDP ...................................................... 143
1.3. Các nhược đim ca giao thc UDP ............................................ 143
1.4. Các ưu đim ca UDP................................................................... 144
1.5. Khi nào thì nên s dng UDP ....................................................... 144
2. Lp DatagramPacket.......................................................................................... 145