BM/QT10/P.ĐTSV/04/04
Ban hành lần: 3
UBND TỈNH BÀ RỊA – VŨNG TÀU
TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ
GIÁO TRÌNH
MƠ ĐUN LẬP TRÌNH MẠNG
NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH
TRÌNH ĐỘ: CAO ĐẲNG
(Ban hành kèm theo Quyết định số: ……/QĐCĐKTCN, ngày … tháng … năm
20…… của Hiệu trưởng Trường Cao đẳng Kỹ thuật Cơng nghệ BRVT)
BÀ RỊA – VŨNG TÀU, NĂM 2020
TUN BỐ BẢN QUYỀN
Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh
viên nghề Quản trị mạng máy tính trong trường Cao đẳng Kỹ thuật Cơng
nghệ Bà Rịa – Vũng Tàu, chúng tơi đã thực hiện biên soạn tài liệu Lập trình
mạng.
Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học
tập, lưu hành nội bộ trong Nhà trường nên các nguồn thơng tin có thể được
phép dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham
khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.
LỜI GIỚI THIỆU
Giáo trình “Lập trình mạng” được biên soạn dựa trên khung chương trình
đào tạo Cao đẳng nghề Quản trị mạng máy tính đã được Trường Cao đẳng
Kỹ thuật Cơng nghê Bà Rịa – Vũng Tàu phê duyệt.
Tác giả đã nghiên cứu một số tài liệu, cơng nghệ hiện đại kết hợp với
kinh nghiệm làm việc thực tế để viết nên giáo trình này. Nội dung được tác
giả trình bày cơ động, dễ hiểu kèm theo các bước hướng dẫn thực hành chi
tiết theo ngun tắc quan tâm đến kết quả đầu ra, khả năng tự học và kỹ
năng cần thiết để HSSV có thể hồn thành ứng dụng trao đổi thơng tin đơn
giản giữa các máy tính trong mạng LAN từ đó định hướng xây dựng các ứng
dụng mạng phức tạp hơn.
Nội dung giáo trình được chia thành 04 bài, trong đó:
Bài 1: Tạo ứng dụng đọc, ghi tập tin
Bài 2: Tạo ứng dụng đa tuyến trình
Bài 3: Làm việc với Socket
Bài 4: Tạo Web Browser
Trong q trình biên soạn, chắc chắn giáo trình cịn nhiều thiếu sót. Tác
giả rất mong nhận được ý kiến đóng góp của q thầy/cơ và các em học sinh,
sinh viên để tiếp tục hồn thiện hơn.
Xin chân thành cảm ơn q đồng nghiệp, bạn bè đã có những ý kiến
đóng góp trong q trình biên soạn giáo trình này.
Bà Rịa – Vũng Tàu, ngày …… tháng …… năm ………
Tham gia biên soạn
1. Phan Hữu Phước – Chủ biên
MỤC LỤC
GIÁO TRÌNH MƠ ĐUN
Tên mơ đun: Lập trình mạng
Mã mơ đun: MĐ32
Vị trí, tính chất, ý nghĩa và vai trị của mơ đun:
Vị trí: được bố trí sau khi học xong các mơn cơ sở và các mơn Lập trình
Windows, Quản trị mạng nâng cao.
Tính chất: là mơ đun cung cấp cho người học kiến thức và kỹ năng để có
thể thiết kế, xây dựng và phát triển ứng dụng mạng clientserver trên hệ
điều hành Windows.
Mục tiêu của mơ đun:
Về kiến thức:
Biết tên các lớp đối tượng hỗ trợ đọc, ghi tập tin
Biết khái niệm tuyến trình
Trình bày quy trình tạo ứng dụng đa tuyến trình
Biết tên các hàm thay đổi trạng thái tuyến trình
Biết khái niệm về Socket, TCP/IP
Trình bày quy trình tạo ứng dụng mạng với Socket, TCP/IP
Trình bày quy trình truyền thơng Web Server với giao thức HTTP
Biết khái niệm về SMTP, POP3
Trình bày quy trình duyệt email bằng SMTP và POP3
Trình bày quy trình gửi nhận file với FTP Server
Biết khái niệm về Firewall, Proxy
Trình bày quy trình chặn địa chỉ IP, cổng giao tiếp, tên miền
Về kỹ năng:
Lập trình đọc, ghi tập tin bằng các lớp đối tượng trong .NET Framework
Xử lý trên tập tin và thư mục bằng các lớp FileInfo và DirectoryInfo
Tạo được ứng dụng đa tuyến trình
Tạo được ứng dụng mạng clientserver với Socket, TCP/IP, UDP
Tạo được trình duyệt web đơn giản
Tạo được ứng dụng gửi và nhận email
Tạo được ứng dụng FTP client
Tạo ứng dụng Firewall, Proxy
Cấu hình sử dụng Proxy
Về năng lực tự chủ và trách nhiệm: có thể làm việc độc lập hoặc tham gia
nhóm xây dựng phần mềm mạng clientserver trên hệ điều hành Windows.
Khơng thay đổi nội dung tập tin, thư mục của hệ điều hành và các phần
mềm khác trên máy tính
Cẩn thận khơng can thiệp vào các tuyến trình của hệ điều hành và các
phần mềm khác trên máy tính
Nội dung của mơ đun:
BÀI 1: TẠO ỨNG DỤNG ĐỌC, GHI TẬP TIN
Mã bài: 32.1
Giới thiệu:
Microsoft Visual Studio cung cấp đầy đủ các lớp đối tượng hỗ trợ cho
người lập trình tạo chức năng đọc/ghi tập tin, quản lý thư mục/tập tin trên hệ
điều hành Windows.
Mục tiêu:
Biết tên các lớp hỗ trợ đọc và ghi tập tin
Lập trình đọc và ghi tập tin bằng các lớp File, FileStream, StreamReader,
StreamWriter
Xử lý trên tập tin và thư mục bằng các lớp FileInfo và DirectoryInfo
Đảm bảo đóng tập tin sau khi đọc/ghi tập tin
Tránh ghi đè lên tập tin hệ thống
Nội dung:
Đọc, ghi tập tin bằng lớp File
1.1. Đọc tập tin bằng lớp File
Giới thiệu lớp File
1. Cung cấp các chức năng cơ bản trong việc đọc và ghi nội dung vào
tập tin
2. Chứa các phương thức lớp do đó khơng cần khởi tạo đối tượng
Dùng phương thức ReadAllText: Mở một tập tin text, đọc nội dung vào
chuỗi sau đó đóng tập tin.
Dùng phương thức ReadAllLine: Mở một tập tin text, đọc nội dung vào
mảng chuỗi (mỗi phần tử của mảng là một dịng nội dung trong tập tin)
sau đó đóng tập tin.
Dùng phương thức ReadAllBytes: Mở một tập tin nhị phân, đọc nội dung
vào mảng byte sau đó đóng tập tin.
: chuyển mảng byte thành một chuỗi
1.2. Ghi tập tin bằng lớp File
Dùng phương thức WriteAllText
Dùng phương thức WriteAllLines
Dùng phương thức WriteAllBytes
Đọc tập tin bằng FileStream và StreamReader
2.1. Đọc tập tin bằng FileStream
Phương pháp thơng thường
Phương pháp bất đồng bộ (Asynchronous)
Bước 1: Khai báo biến
Bước 2: Xây dựng phương thức bất đồng bộ
Bước 3: Xử lý sự kiện
Phương pháp đa tuyến trình (Chi tiết về đa tuyến trình sẽ được trình bày
ở Bài 2)
Bước 1: Xây dựng phương thức cho tuyến trình đọc và hiển thị dữ liệu.
Phương thức này sẽ được triệu gọi trong một tuyến trình song song.
Bước 2: Xử lý sự kiện
2.2. Đọc tập tin bằng StreamReader
Phương pháp thơng thường
Phương pháp bất đồng bộ
1. Thêm từ khóa async trước tên phương thức xử lý sự kiện
2. Thêm await trước lời gọi phương thức ReadAsync của đối tượng
StreamReader
Phương pháp đa tuyến trình
Bước 1: Tạo phương thức cho tuyến trình đọc và hiển thị dữ liệu. Phương
thức này được gọi trong một tuyến trình song song.
Bước 2: Xử lý sự kiện
Ghi tập tin bằng FileStream và StreamWriter
Hình 1.1. Đồng bộ (Synchronous) và Bất đồng bộ (Asynchronous)
3.1. Ghi tập tin bằng FileStream
Phương pháp thơng thường
Phương pháp bất đồng bộ
Bước 1: Khai báo biến
Bước 2: Xây dựng phương thức bất đồng bộ
Bước 3: Xử lý sự kiện
Phương pháp đa tuyến trình
Bước 1: Xây dựng phương thức cho tuyến trình ghi dữ liệu
Bước 2: Xử lý sự kiện
3.2. Ghi tập tin bằng StreamWriter
Phương pháp thơng thường
Phương pháp bất đồng bộ
Phương pháp đa tuyến trình
Bước 1: Xây dựng phương thức cho tuyến trình ghi dữ liệu
Bước 2: Xử lý sự kiện
Xử lý tập tin và thư mục bằng FileInfo và DirectoryInfo
4.1. Kiểm tra tồn tại
Kiểm tra tập tin tồn tại
Bảng 1.1. Một số thuộc tính/phương thức của FileInfo
Directory
DirectoryName
IsReadOnly
Length
Name
FullName
Exists
MoveTo
CopyTo
Trả về thư mục (DirectoryInfo) chứa tập tin
Trả về tên của thư mục chứa tập tin
Đọc/Ghi thuộc tính chỉ đọc của tập tin
Kích thước của tập tin
Tên của tập tin
Tên đầy đủ (bao gồm ổ đĩa, thư mục và tên) của tập tin
Kiểm tra tập tin tồn tại
Di chuyển tập tin đến thư mục khác
Sao chép tập tin đến thư mục khác
Xóa tập tin
Delete
Kiểm tra thư mục tồn tại
Bảng 1.2. Một số thuộc tính/phương thức của DirectoryInfo
Parent
Root
GetFiles
GetDirectories
MoveTo
Trả về thư mục cha
Trả về thư mục gốc
Trả về danh sách tập tin (FileInfo)
Trả về danh sách thư mục
Di chuyển đến thư mục khác
4.2. Duyệt danh sách tập tin, thư mục
Dùng phương thức GetFiles để đọc danh sách tập tin trong
DirectoryInfo
Dùng phương thức GetDirectories để đọc danh sách thư mục trong
DirectoryInfo
Ví dụ:
CÂU HỎI, BÀI TẬP
1.1. Tạo ứng dụng đọc/ghi tập tin text tương tự NodePad
1.2. Tạo ứng dụng quản lý thư mục/tập tin tương tự Windows Explorer
Sử dụng TreeView, ListView
Cho phép tạo/xóa/di chuyển/sao chép/đổi tên thư mục
Cho phép xóa/di chuyển/sao chép/đổi tên tập tin
Khi click đơi chuột lên tên tập tin (.txt) thì hiển thị ứng dụng 1.1 cho phép
xem và sửa nội dung của tập tin đó.
U CẦU KIỂM TRA, ĐÁNH GIÁ KẾT QUẢ HỌC TẬP
Sử dụng lớp FileStream, StreamReader, StreamWriter
Lập trình xử lý bất đồng bộ
Xử lý trên TreeView, ListView
BÀI 2: TẠO ỨNG DỤNG ĐA TUYẾN TRÌNH
Mã bài: 32.2
Giới thiệu:
Trước đây, chúng ta chỉ mới tạo ra các ứng dụng đơn tuyến trình, tức là
thực hiện việc này xong mới thực hiện việc khác. Các em sẽ tạo được ứng
dụng đa tuyến trình (cho phép nhiều cơng việc cùng thực hiện tại một thời
điểm) sau khi học xong bài học này.
Mục tiêu:
Biết kiến thức và kỹ năng lập trình với các tuyến trình
Tạo được ứng dụng đa tuyến trình
Đảm bảo khơng cịn tuyến trình tồn tại sau khi thốt ứng dụng
Nội dung:
1. Giới thiệu
Ứng dụng đa tuyến trình là ứng dụng có nhiều tuyến trình (cơng việc) thực
hiện trong cùng một thời điểm.
Ví dụ: ứng dụng xử lý văn bản có các tuyến trình sau
Kiểm tra chính tả
Kiểm sốt việc gõ văn bản
…
1. Tạo ứng dụng đa tuyến trình
Bước 1: Xây dựng phương thức thực thi của Thread
Bước 2: Tạo đối tượng Thread kèm theo phương thức thực thi
Bước 3: Gọi phương thức Start của Thread
Ví dụ:
2. Thay đổi trạng thái của tuyến trình
Đặt trạng thái chờ (tạm dừng với thời hạn biết trước): Sleep(
| gian>);
1. <thời gian>: tính bằng miligiây
Tạm dừng vơ thời hạn: Suspend();
Khởi động lại (trước đó đã Suspend): Resume();
Hủy tiến trình:Abort();
Ví dụ:
3. Đọc thơng tin và gán tên cho tuyến trình
Lớp Thread cung cấp rất nhiều phương thức để đọc thơng tin chi tiết của
tuyến trình đang hoạt động.
IsAlive: xác định tuyến trình cịn hoạt động hay khơng
Priority: xác định độ ưu tiên của tuyến trình
threadState: xác định trạng thái của tuyến trình
CurrentThread: trả về tuyến trình hiện hành
Name: xác định, đặt tên cho tuyến trình
GetHashCode(): trả về định danh (duy nhất, kiểu int) tương ứng với
tuyến trình
Ví dụ:
CÂU HỎI, BÀI TẬP
2.1. Tạo ứng dụng đếm số ký tự/từ trong textbox (sử dụng đa tuyến trình,
khơng sử dụng sự kiện TextChanged)
2.2. Tạo ứng dụng giả lập truyền file trên mạng (sử dụng đa tuyến trình)
BÀI 3: LÀM VIỆC VỚI SOCKET
Mã bài: 32.3
Giới thiệu:
Một trong những nội dung quan trọng nhất của lập trình ứng dụng mạng
là Socket.
Mục tiêu:
Biết các kiến thức về lập trình Socket, TCP/IP
Tạo được ứng dụng mạng ClientServer với giao thức TCP/IP
Tạo được ứng dụng mạng ClientServer với Socket
Cẩn thận, làm việc nhóm, an tồn cho máy tính
Nội dung:
1. Tạo ứng dụng mạng đơn giản đầu tiên
1.1. Tạo UDP Client
1.2. Tạo UDP Server
Bước 1: Viết phương thức cho tuyến trình nhận dữ liệu
Bước 2: Xử lý sự kiện
4. Truyền tin bằng giao thức TCP/IP
2.1. Xử lý trên Client