Giáo trình Lập trình truyền thông - Đại học Cần Thơ
Mục lục
CHƯƠNG 1.1
Tổng quan vềlập trình truyền thông.1
1.1. Cơchếgiao tiếp liên quá trình là gì ?.2
1.2. Phân loại cơchếgiao tiếp liên quá trình.2
1.3. Mô hình tham khảo OSI.3
1.4. Mạng TCP/IP.6
1.5. Dịch vụmạng.7
1.6. Mô hình Client – Server.7
1.6.1. Giới thiệu.7
1.6.2. Ví dụvềdịch vụWeb.8
1.6.3. Các chế độgiao tiếp.9
1.6.3.1. Chế độnghẽn :.9
1.6.3.2. Chế độkhông nghẽn:.9
1.7. Các kiểu kiến trúc chương trình.9
1.7.1. Kiến trúc đơn tầng (Single-tier Architecture).10
1.7.2. Kiến trúc hai tầng (Two - Tier Architecture).10
1.7.2.1. Loại Fat Client.11
1.7.2.2. Loại Fat Server.12
1.7.3. Kiến trúc đa tầng (N-Tier Architecture).12
1.8. Bài tập.13
1.8.1. Bài tập bắt buộc.13
1.8.2. Bài tập gợi ý.13
Tìm đọc và viết một báo cáo không quá 10 trang vềgiao thức POP3.13
CHƯƠNG 2.14
Sơlược vềngôn ngữJava.14
1.1. Giới thiệu vềngôn ngữJava.15
1.1.1. Lịch sửphát triển.15
1.1.2. Khảnăng của ngôn ngữJava.15
1.1.2. Những đặc điểm của ngôn ngữJava.15
1.1.3. Máy ảo Java (JMV - Java Virtual Machine).15
1.1.4. Hai kiểu ứng dụng dưới ngôn ngữjava.16
1.1.5. Bộphát triển ứng dụng Java (JDK- Java Development Kit).16
1.1.6. Kiểu dữliệu cơbản dưới Java.16
1.1.7. Các phép toán cơbản.17
1.1.8. Qui cách đặt tên trong Java.17
1.2. Chương trình ứng dụng kiểu Application.18
1.2.1. Chương trình HelloWorld.19
1.2.3. Biên soạn chương trình bằng phần mềm Notepad của Ms Windows.19
1.2.4. Cài đặt bộphát triển ứng dụng JDK.20
1.2.5. Biên dịch và thực thi chương trình.20
1.2.6. Một sốví dụ.21
1.2.6.1. Hiển thịthông tin ra màn hành.21
1.2.6.2. Đọc ký tựtừbàn phím.21
1.3. Các cấu trúc điều khiển trong Java.23
1.3.1. Lệnh if – else.23
1.3.2. Phép toán ?.24
1.3.3. Lệnh switch.25
1.3.4. Lệnh while.26
1.3.5. Lệnh do - while.27
1.3.6. Lệnh for.27
1.3.7. Lệnh break.28
1.3.8. Lệnh continue.29
1.3.9. Một sốvấn đềkhác.30
1.3.9.1. Đọc đối sốcủa chương trình.30
1.3.9.2. Đổi chuỗi thành số.31
1.4. Ngoại lệ(EXCEPTION).31
1.5. Một sốvấn đềliên quan đến lớp trong Java.33
1.5.1. Định nghĩa lớp mới.33
1.5.2. Phạm vi nhìn thấy của một lớp.34
1.5.3. Tính thừa kế.35
1.6. Vào / Ra với Stream.36
1.6.1. Lớp java.io.InputStream.37
1.6.2. Lớp java.io.OutputStream.39
1.6.3. Nhập chuỗi từmột InputStream.40
1.6.4. Xuất chuỗi ra một OutputStream.41
1.7. Luồng (Thread).42
1.7.1. Các mức cài đặt luồng.43
1.7.1.1. Tiếp cận luồng ởmức người dùng:.44
1.7.1.2. Tiếp cận luồng ởmức hạt nhân hệ điều hành.44
1.7.2. Luồng trong java.44
1.7.2.1 Độ ưu tiên của luồng.47
1.7.3. Đồng bộhóa giữa các luồng.49
1.8. Bài tập áp dụng.49
Chủ đề1: Cơbản vềJava.49
Chủ đề2: Thiết kếlớp trong Java.49
Chủ đề3: Thread.50
CHƯƠNG 3.51
Ống dẫn (Pipe).51
1.1. Giới thiệu về ống dẫn.52
1.2. Ống dẫn trong Java.52
1.2.1. Giới thiệu.52
1.2.2. Các cách tạo ống dẫn.53
1.3. Dịch vụphản hồi thông tin (Echo Service).53
1.4. Giảlập dịch vụphản hồi thông tin bằng Pipe.54
1.4.1. Lớp PipedEchoServer.54
1.4.2. Lớp PipedEchoClient.55
1.4.3. Lớp PipedEcho.55
1.4.5. Biên dịch và thực thi chương trình.56
CHƯƠNG 4.57
Socket.57
1.1. Giới thiệu vềsocket.58
1.1.1. Giới thiệu.58
1.1.2. Sốhiệu cổng (Port Number) của socket.58
1.1.3. Các chế độgiao tiếp.60
1.2. Xây dựng ứng dụng Client-Server với Socket.61
1.2.1. Mô hình Client-Server sửdụng Socket ởchế độcó nối kết (TCP).61
1.2.2. Mô hình Client-Server sửdụng Socket ởchế độkhông nối kết (UDP).63
1.3. Socket dưới ngôn ngữJava.64
1.3.1. Xây dựng chương trình Client ởchế độcó nối kết.65
1.3.1.1. Lớp java.net.Socket.65
1.3.1.2. Chương trình TCPEchoClient.66
1.3.2. Xây dựng chương trình Server ởchế độcó nối kết.67
1.3.2.1. Lớp java.net.ServerSocket.67
1.3.2.2. Xây dựng chương trình Server phục vụtuần tự.67
1.3.2.3. Chương trình STCPEchoServer.68
1.3.2.4. Server phục vụsong song.69
1.3.2.5. Chương trình PTCPEchoServer.70
1.3.3. Xây dựng chương trình Client - Server ởchế độkhông nối kết.71
1.3.3.1. Lớp DatagramPacket.72
1.3.3.2. Lớp DatagramSocket.73
1.3.3.3. Chương trình UDPEchoServer.74
1.3.3.4. Chương trình UDPEchoClient.75
1.4. Bài tập áp dụng.77
CHƯƠNG 5.79
RPC và RMI.79
1.1. Lời gọi thủtục xa (RPC- Remote Procedure Call).80
1.1.1. Giới thiệu.80
1.1.2. Kiến trúc của chương trình Client-Server cài đặt theo cơchếlời gọi thủ
tục xa80
Hình 5.1 Kiến trúc chương trình kiểu RPC.80
1.2. Kích hoạt phương thức xa (RMI- Remote Method Invocation ).81
1.2.1. Giới thiệu.81
1.2.2. Kiến trúc của chương trình Client-Server theo cơchếRMI.82
1.2.3. Các cơchếliên quan trong một ứng dụng đối tượng phân tán.83
1.2.4. Cơchếvận hành của của một ứng dụng Client-Server theo kiểu RMI.84
1.2.5. Các lớp hỗtrợchương trình theo kiểu Client-Server trong Java.85
1.3. Xây dựng một ứng dụng phân tán với RMI.85
1.3.1. Thiết kếvà cài đặt các thành phần của ứng dụng.85
1.3.2. Biên dịch các tập tin nguồn và tạo Stubs và Skeleton.85
1.3.3. Tạo các lớp có thểtruy xuất từmạng.86
1.3.4. Thực thi ứng dụng.86
1.3.4. Ví dụminh họa.86
1.4. Bài tập áp dụng.92
Mục lục.92
.............................................................................26 1.3.5. Lệnh do - while..............................................................................................27 1.3.6. Lệnh for .........................................................................................................27 1.3.7. Lệnh break.....................................................................................................28 1.3.8. Lệnh continue ................................................................................................29 1.3.9. Một số vấn đề khác........................................................................................30 1.3.9.1. Đọc đối số của chương trình ..................................................................30 1.3.9.2. Đổi chuỗi thành số..................................................................................31 1.4. Ngoại lệ (EXCEPTION) ......................................................................................31 1.5. Một số vấn đề liên quan đến lớp trong Java.........................................................33 1.5.1. Định nghĩa lớp mới........................................................................................33 1.5.2. Phạm vi nhìn thấy của một lớp......................................................................34 1.5.3. Tính thừa kế...................................................................................................35 1.6. Vào / Ra với Stream ............................................................................................36 1.6.1. Lớp java.io.InputStream................................................................................37 1.6.2. Lớp java.io.OutputStream .............................................................................39 1.6.3. Nhập chuỗi từ một InputStream ....................................................................40 1.6.4. Xuất chuỗi ra một OutputStream ..................................................................41 1.7. Luồng (Thread).....................................................................................................42 1.7.1. Các mức cài đặt luồng ...................................................................................43 1.7.1.1. Tiếp cận luồng ở mức người dùng: ........................................................44 Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 94 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông 1.7.1.2. Tiếp cận luồng ở mức hạt nhân hệ điều hành.........................................44 1.7.2. Luồng trong java ...........................................................................................44 1.7.2.1 Độ ưu tiên của luồng ...............................................................................47 1.7.3. Đồng bộ hóa giữa các luồng..........................................................................49 1.8. Bài tập áp dụng.....................................................................................................49 Chủ đề 1: Cơ bản về Java ........................................................................................49 Chủ đề 2: Thiết kế lớp trong Java ...........................................................................49 Chủ đề 3: Thread .....................................................................................................50 CHƯƠNG 3........................................................................................................................51 Ống dẫn (Pipe) ...................................................................................................................51 1.1. Giới thiệu về ống dẫn ...........................................................................................52 1.2. Ống dẫn trong Java...............................................................................................52 1.2.1. Giới thiệu.......................................................................................................52 1.2.2. Các cách tạo ống dẫn.....................................................................................53 1.3. Dịch vụ phản hồi thông tin (Echo Service) ..........................................................53 1.4. Giả lập dịch vụ phản hồi thông tin bằng Pipe ......................................................54 1.4.1. Lớp PipedEchoServer....................................................................................54 1.4.2. Lớp PipedEchoClient ....................................................................................55 1.4.3. Lớp PipedEcho ..............................................................................................55 1.4.5. Biên dịch và thực thi chương trình................................................................56 CHƯƠNG 4........................................................................................................................57 Socket .................................................................................................................................57 1.1. Giới thiệu về socket..............................................................................................58 1.1.1. Giới thiệu.......................................................................................................58 1.1.2. Số hiệu cổng (Port Number) của socket........................................................58 1.1.3. Các chế độ giao tiếp ......................................................................................60 1.2. Xây dựng ứng dụng Client-Server với Socket .....................................................61 1.2.1. Mô hình Client-Server sử dụng Socket ở chế độ có nối kết (TCP) ..............61 1.2.2. Mô hình Client-Server sử dụng Socket ở chế độ không nối kết (UDP)........63 1.3. Socket dưới ngôn ngữ Java ..................................................................................64 1.3.1. Xây dựng chương trình Client ở chế độ có nối kết .......................................65 1.3.1.1. Lớp java.net.Socket ................................................................................65 1.3.1.2. Chương trình TCPEchoClient ................................................................66 1.3.2. Xây dựng chương trình Server ở chế độ có nối kết ......................................67 Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 95 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông 1.3.2.1. Lớp java.net.ServerSocket .....................................................................67 1.3.2.2. Xây dựng chương trình Server phục vụ tuần tự .....................................67 1.3.2.3. Chương trình STCPEchoServer .............................................................68 1.3.2.4. Server phục vụ song song.......................................................................69 1.3.2.5. Chương trình PTCPEchoServer .............................................................70 1.3.3. Xây dựng chương trình Client - Server ở chế độ không nối kết ...................71 1.3.3.1. Lớp DatagramPacket ..............................................................................72 1.3.3.2. Lớp DatagramSocket..............................................................................73 1.3.3.3. Chương trình UDPEchoServer...............................................................74 1.3.3.4. Chương trình UDPEchoClient ...............................................................75 1.4. Bài tập áp dụng.....................................................................................................77 CHƯƠNG 5........................................................................................................................79 RPC và RMI.......................................................................................................................79 1.1. Lời gọi thủ tục xa (RPC- Remote Procedure Call) ..............................................80 1.1.1. Giới thiệu.......................................................................................................80 1.1.2. Kiến trúc của chương trình Client-Server cài đặt theo cơ chế lời gọi thủ tục xa 80 Hình 5.1 Kiến trúc chương trình kiểu RPC........................................................................80 1.2. Kích hoạt phương thức xa (RMI- Remote Method Invocation ) .........................81 1.2.1. Giới thiệu.......................................................................................................81 1.2.2. Kiến trúc của chương trình Client-Server theo cơ chế RMI .........................82 1.2.3. Các cơ chế liên quan trong một ứng dụng đối tượng phân tán .....................83 1.2.4. Cơ chế vận hành của của một ứng dụng Client-Server theo kiểu RMI ........84 1.2.5. Các lớp hỗ trợ chương trình theo kiểu Client-Server trong Java ..................85 1.3. Xây dựng một ứng dụng phân tán với RMI .........................................................85 1.3.1. Thiết kế và cài đặt các thành phần của ứng dụng..........................................85 1.3.2. Biên dịch các tập tin nguồn và tạo Stubs và Skeleton...................................85 1.3.3. Tạo các lớp có thể truy xuất từ mạng............................................................86 1.3.4. Thực thi ứng dụng .........................................................................................86 1.3.4. Ví dụ minh họa ..............................................................................................86 1.4. Bài tập áp dụng.....................................................................................................92 Mục lục...............................................................................................................................92 Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 96
File đính kèm:
- lapTrinhTruyenThong.pdf