Lập trình mạng với C#

CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ MẠNG MÁY TÍNH.3

1.1. Mô hình tham khảo 7 tầng OSI.3

1.2. Họ giao thức TCP/IP.5

1.3. So sánh giữa hai giao thức TCP và UDP.6

1.4. Cổng giao thức.7

1.5. ðịa chỉ IP, các ñịa chỉ IP dành riêng.7

1.6. ðịa chỉ tên miền: loại A, loại MX. .8

1.7. Một số giao thức ở tầng ứng dụng: HTTP, SMTP, POP3, FTP. .8

CHƯƠNG 2: LẬP TRÌNH MẠNG TRONG .NET FRAMEWORK .9

2.1. Socket hướng kết nối (TCP Socket) .9

2.1.1. Giới thiệu về NameSpace System.Net và System.Net.Sockets .10

2.1.2. Viết chương trình cho phía máy chủ.11

2.1.3. Viết chương trình cho phía máy khách.13

2.1.4. Sử dụng các luồng nhập xuất với Socket.14

2.2. Socket không hướng kết nối (UDP Socket).17

2.2.1. Viết chương trình cho phía máy chủ.17

2.2.2. Viết chương trình cho phía máy khách.18

2.2.3. Sử dụng lớp System.IO.MemoryStream ñể tạo vùng ñệm nhập xuất.20

2.3. Sử dụng các lớp hỗ trợ ñược xây dựng từ lớp Soket .20

2.3.1. Lớp TCPClient.21

2.3.2. Lớp TCPListener .22

2.3.3. Lớp UDPClient .24

2.4. Socket không ñồng bộ.26

2.4.1. Mô hình xử lý sự kiện của windows .26

2.4.2. Sử dụng Socket không ñồng bộ .27

2.4.3. Ví dụ về Socket không ñồng bộ.28

2.4.4. Sử dụng các phương thức Non-blocking .35

2.5. Sử dụng Thread trong các ứng dụng mạng .39

2.5.1. Sử dụng Thread trong chương trình .Net.40

2.5.2. Sử dụng Thread trong các chương trình Server .41

2.5.3. Sử dụng Thread ñể gửi/nhận dữ liệu.41

2.5.4. Sử dụng ThreadPool trong các chương trình .Net .43

2.5.5. Sử dụng ThreadPool trong các chương trình Server.47

2.6. Kỹ thuật IP Multicasting.48

2.6.1. Broadcasting là gì?.48

2.6.2. Sử dụng Broadcasting ñể gửi dữ liệu ñến nhiều máy trong mạng cục bộ .48

2.6.3. Multicasting là gì? .49

2.6.4. Socket Multicasting trong .Net .50

2.7 Bài tập áp dụng .53

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MẠNG.55

3.1. Giao thức ICMP.55

3.1.1. Sử dụng Raw Socket.55

3.1.2. Sử dụng giao thức ICMP và Raw Socket ñể xây dựng chương trình Ping.57

3.1.3. Sử dụng giao thức ICMP và Raw Socket ñể xây dựng chương trình TraceRoute .58

3.2. Giao thức SMTP, POP3.60

3.2.1. Cơ bản về hệ thống Mail và giao thức SMTP, POP3 .60

3.2.2. Cài ñặt SMTP, POP3 Client/Server .60

3.3. Giao thức HTTP.67

3.3.1. Cơ bản về giao thức HTTP .67

3.3.2. Cài ñặt HTTP Client/Server.68

3.4. Giao thức FTP.74

3.4.1. Cơ bản về giao thức FTP .74

3.4.2. Cài ñặt FTP Client/Server.84

2

3.5. DNS (Domain Name Server) .88

3.5.1. Vấn ñề phân giải tên miền .88

3.5.2. Triển khai DNS MX (Mail Exchange) .89

3.6 Thảo luận về các ứng dụng khác thường gặp .93

3.7 Bài tập áp dụng .93

CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG NHIỀU LỚP .94

4.1. Mô hình 2 lớp (two tier), 3 lớp (three tier) và n lớp. .94

4.2. Remoting.98

4.2.1. Giới thiệu về Remoting.102

4.2.2. Khai báo, cài ñặt và ñăng ký giao diện từ xa .102

4.2.3. Triệu gọi phương thức từ xa .107

4.3. Web Serive.107

4.3.1. Giới thiệu về Web Serives .107

4.3.2. Giao thức SOAP .109

4.3.3. Xây dựng Web Services.112

4.3.4. Triệu gọi Web Services từ ứng dụng .NET, Java và các ngôn ngữ khác .114

4.4 Thảo luận về các ứng dụng phân tán .116

4.5. Bài tập áp dụng .116

pdf117 trang | Chuyên mục: Visual C# | Chia sẻ: dkS00TYs | Lượt xem: 5138 | Lượt tải: 1download
Tóm tắt nội dung Lập trình mạng với C#, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
- Web service có thể ñược công bố (publish) và gọi thực hiện qua mạng. 
Ngày nay web service ñược sử dụng rất nhiều trong những lĩnh vực khác nhau 
của cuộc sống như: 
 - Dịch vụ chọn lọc và phân loại tin tức: là những hệ thống thư viện kết nối ñến các 
web portal ñể tìm kiếm các thông tin từ các nhà xuất bản có chứa những khoá muốn 
tìm. 
 - Dịch vụ hiển thị danh sách ñĩa nhạc dành cho các công ty thu thanh. 
 - Ứng dụng ñại lý du lịch có nhiều giá vé ñi du lịch khác nhau do có chọn lựa phục 
vụ của nhiều hãng hàng không. 
 - Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện web. 
 - Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: dự báo thời tiết, 
thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu,… 
 - Những giao dịch trục tuyến cho cả B2B và B2C như: ñặt vé máy bay, làm giao kèo 
thuê xe. 
 - Hệ thống thông tin dùng java ñể tính toán tỷ giá chuyển ñổi giữa các loại tiền tệ. Hệ 
thống này sẽ ñược các ứng dụng khác dùng như một web service. 
4. Kiến trúc Web service 
 Kiến trúc của Web service bao gồm các tầng như sau: 
 109 
Hình 1: Kiến trúc Web service 
Trong ñó bao gồm các tầng như sau: 
 - Tầng vận chuyển: có nhiệm vụ truyền thông ñiệp giữa các ứng dụng mạng, bao 
gồm những giao thức như HTTP, SMTP, FTP, JSM và gần ñây nhất là giao 
thức thay ñổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP). 
- Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) với công 
nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô 
tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa 
thông qua một message XML. 
- Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và 
XML. WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web 
service sử dụng ngôn ngữ WSDL ñể truyền các tham số và các loại dữ liệu cho 
các thao tác, các chức năng mà web service cung cấp. 
- Tầng dịch vụ ( Service): cung cấp các chức năng của service. 
- Tầng ñăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI. UDDI 
dùng cho cả người dùng và SOAP server, nó cho phép ñăng ký dịch vụ ñể 
người dùng có thể gọi thực hiện service từ xa qua mạng, hay nói cách khác một 
service cần phải ñược ñăng ký ñể cho phép các client có thể gọi thực hiện 
- Bên cạnh ñó ñể cho các service có tính an toàn, toàn vẹn và bảo mật thông tin 
trong kiến trúc web service chúng ta có thêm các tầng Policy, Security, 
Transaction, Management giúp tăng cường tính bảo mật, an toàn và toàn vẹn 
thông tin khi sử dụng service. 
4.3.2. Giao thức SOAP 
 110 
SOAP là chữ viết tắt của cụm từ “Simple Object Access Protocol – Giao thức truy cập ñối 
tượng ñơn giản”, nhưng với sự xem xét mới nhất thì, SOAP sẽ không còn là một từ viết tắt 
nữa. Chuẩn SOAP ghi nhận XML ñược thể hiện thế nào bên trong tài liệu SOAP, làm thế nào 
nội dung của thông ñiệp ñược truyền tải, và làm thế nào thông ñiệp ñược xử lý ở cả hai phía 
gởi và nhận. SOAP cũng cung cấp một tập các từ vựng chuẩn. 
Các thuật ngữ: 
Như bẩt kỳ công nghệ nào, SOAP cũng có tập các thuật ngữ của riêng nó. Có nhiều thuật ngữ 
ñược sử dụng thường xuyên ñể mô tả các khía cạnh khác nhau của chuẩn SOAP. Nhiều lập 
trình viên dùng các thuật ngữ này mà không thật sự hiểu ý nghĩa của nó. ðể hiểu thật sự các 
khái niệm ñòi hỏi phải tốn một thời gian ñể hiểu ý nghĩa của từng thuật ngữ và làm thế nào ñể 
áp dụng cho cả chuẩn SOAP và một Web Services thực thụ 
Chú ý: Chuẩn SOAP không chỉ là chuẩn XML mà chuẩn này còn bao gồm các thông ñiệp 
SOAP có hành vi như thế nào, các phương tiện vận chuyển khác nhau, cách mà các lỗi ñược 
xử lý.. 
Sự truyền tải dữ liệu 
SOAP Binding 
Thuật ngữ mô tả làm thế nào một thông ñiệp SOAP tương tác ñược với một giao thức vận 
chuyển như HTTP, SMTP hay FTP ñể di chuyển trên Internet. ðiều quan trọng là SOAP di 
chuyển bằng một giao thức chuẩn ñể liên lạc với các sản phẩm Web Services khác. 
Trước SOAP, nhiều người phát triển ñã tạo ra các phương pháp của riêng họ ñể chuyển tải 
một tài liệu XML trên mạng. Các cách này vẫn hoạt ñộng tốt trong phạm vi một nhóm cụ thể. 
Tuy nhiên khi bạn cần làm việc với một nhóm khác ở trong hay bên ngoài công ty thì ñiều 
này trở nên khó khăn vì phải huấn luyện và có thể thay ñổi ñể làm việc với việc truyền tải tài 
liệu XML mà họ ñang sử dụng. Bằng cách sử dụng một tài liệu XML chuẩn trên các giao thức 
chuẩn, công việc cần làm khi cộng tác với nhau sẽ ñược giảm thiểu tối ña 
SOAP Message Exchang Pattern (MEP) 
Thuật ngữ mô tả làm thế nào mà một tài liệu SOAP trao ñổi giữa phía máy khách và chủ. 
Thông ñiệp SOAP sở hữu một liên kết, như là HTTP, ñể nó có thể truyền trên Internet. Việc 
nói chuyện giữa máy khách và chủ, ở ñây là các nút, xác ñịnh các hành ñộng mà cả hai phía 
thực hiện. 
Nhắc lại SOAP là một XML ñóng gói RPC. Vì thế, MEP hoàn toàn là yêu cầu và phản hồi 
giữa máy khách và chủ (hay các nút khác). Như vậy nếu có nhu cầu liên lạc giữa các nút thì 
việc này ñược thực hiện bằng nhiều yêu cầu và phản hồi ñể hoàn tất việc truyền thông ñiệp. 
Cách này khác hẳn với các công nghệ ñối tượng từ xa khác như CORBA, công nghệ ñó ñược 
thực hiện chỉ trong một kết nối. 
SOAP Application 
Một ứng dụng SOAP ñơn giản là một ứng dụng dùng SOAP theo một vài cách khác nhau. Vài 
ứng dụng hoàn toàn dựa trên chuẩn SOAP, như là Web Services cổ phiếu, hoặc dùng chuẩn 
SOAP ñể nhận mã và các cập nhật của phần mềm. Chú ý là một ứng dụng có thể tạo, sử dụng 
hoặc là nút trung gian của Web Services. 
SOAP Node 
Trách nhiệm của một nút có thể bao gồm gởi, nhận, xử lý hoặc truyền tải lại một thông ñiệp 
SOAP. Một nút chỉ là một phần nhỏ của phần mềm, xử lý một tài liệu SOAP phụ thuộc vào 
 111 
vai trò của nó. Bên cạnh việc truyền dữ liệu, một nút có trách nhiệm ñảm bảo thông tin XML 
trong tài liệu SOAP phải ñúng ngữ pháp theo chuẩn SOAP. 
SOAP Role 
Một vai trò của SOAP ñịnh nghĩa một nút cụ thể hoạt ñộng như thế nào. Nó có thể là nút gởi, 
nhận hoặc nút trung gian. 
SOAP Sender 
Nút gởi là nút gởi yêu cầu SOAP. Nếu bạn nghĩ ñến ví dụ của ứng dụng khách chủ thì khi 
ứng dụng khách thực hiện yêu cầu, nó gởi thông ñiệp tới ứng dụng chủ ñể yêu cầu vài thông 
tin. 
SOAP Receiver 
Ngược lại với SOAP sender là nút nhận. 
SOAP Intermediary 
Một nút trung gian có thể xem một thông ñiệp SOAP và tương tác trên vài phần thông tin của 
thông ñiệp, và chuyển ñến vị trí kế tiếp của thông ñiệp. Một nút trung gian thường hoạt ñộng 
như một router. Một router sẽ xem xét thông tin của gói tin chuyển trên mạng, tìm ñiểm kế 
tiếp của gói tin và chuyển gói tin ñển ñó. 
Message Path 
Một thông ñiệp SOAP di chuyển từ phía bên gởi ñến phía bên nhận thông ñiệp thông qua 
nhiều nút trung gian. Tuyến ñường ñi của thông ñiệp ñược gọi là một Message Path. 
Initial SOAP Sender 
Nút gởi yêu cầu SOAP ñầu tiên là nút gởi SOAP ban ñầu. 
SOAP Feature 
Một ñặc ñiểm SOAP là một phần chức năng của phần mềm hỗ trợ chức năng SOAP. 
Các thuật ngữ liên quan ñến XML 
Chuẩn SOAP cũng ñịnh nghĩa một tập nhỏ các phần tử XML ñể ñóng gói dữ liệu ñược truyền 
giữa các nút. Thật sự chỉ có vài phần tử vì phần thân của thông ñiệp có thể khác nhau phụ 
thuộc vào cài ñặt. Sự uyển chuyển này ñược cho phép bởi chuẩn SOAP. 
SOAP Message 
ðây là tài liệu XML ñược truyền bởi một nút SOAP gởi hoặc nhận. Một nút gởi hoặc nút 
khách tạo ra một tài liệu XML chứa thông tin mà phía bên khách cần từ phía chủ. Một khi tài 
liệu ñược truyền, phía bên chủ phân giải thông tin trong tài liệu ñể truy xuất các giá trị khác 
nhau và tạo một thông ñiệp SOAP mới ñể phản hồi. 
SOAP Envelope 
ðây là phần tử gốc của tài liệu SOAP XML. Tài liệu SOAP chứa nhiều ñịnh nghĩa không gian 
tên (namespace) nhưng các phần tử liên quan tới thông ñiệp SOAP sẽ có ENV: là tiếp ñầu 
ngữ. 
SOAP Header 
 112 
Phần ñầu của một thông ñiệp SOAP chứa một khối thông tin ñầu trong tài liệu XML ñể ñịnh 
tuyến và xử lý thông ñiệp SOAP. Dữ liệu này tách rời khỏi phần thân của tài liệu có chứa 
thông tin liên quan ñến ñối tượng ñược gọi. 
SOAP Header Block 
Phần ñầu của SOAP chứa nhiều phần giới hạn hay là nhiều khối thông tin có một khối thông 
tin của phần ñầu. Những khối thông tin của phần ñầu này chứa thông tin về các nút trung gian 
vì một nút cần biết nút kế tiếp ñể thông ñiệp ñược gởi ñến. 
SOAP Body 
Phần thân của SOAP thật sự chứa thông tin của ñối tượng ñể xử lý thông tin. Phần thân sau 
khi ñược phân tách sẽ trở thành ñối tượng. ðối tượng xử lý thông tin và kết quả ñược ñặt 
trong phần thân của tài liệu trả về. 
SOAP Fault 
ðây là một phần thông tin của SOAP chứa thông tin ñến bất kỳ lỗi gì xảy ra tại một nút 
SOAP. 
4.3.3. Xây dựng Web Services 
- Tạo một Web Services project 
- Tạo Web Method 
 113 
- Chạy thử Web Services danh sách các hàm sẽ ñược liệt kê 
- Chọn hàm Add 
 114 
- Sau khi nhập các tham số vào, nhấn Invoke. Kết quả sẽ xuất hiện 
4.3.4. Triệu gọi Web Services từ ứng dụng .NET, Java và các ngôn ngữ khác 
 - Sau khi xây dựng Web Server song ta có thể triệu gọi nó từ một ứng dụng 
khác 
 - Tạo một Window Form 
 115 
- Add Web Reference 
- Tạo màn hình: 
 116 
- Viết hàm xử lý nút nhấn: 
- Chạy thử ứng dụng ta có kết quả: 
4.4 Thảo luận về các ứng dụng phân tán 
4.5. Bài tập áp dụng 
 1. Viết chương trình Chat sử dụng công nghệ Web Services 
 2. Viết chương trình Calculator bằng công nghệ Web Services 
 3. Viết chường trình quản lý FileManager bằng công nghệ Web Services. 
 117 
TÀI LIỆU THAM KHẢO 
1. Richard Blum, C# Network Programming, 2003 
2. Fiach Reid, Network programming in NET with C# and VB.NET, Digital 
Press, 2003 
3. Bài giảng “Nhập môn Công nghệ phần mềm”, ðại học KHTN 
4. Bài giảng “Xây dựng phần mềm hướng ñối tượng”, ðại học KHTN 
5. Bài giảng “Lập trình truyền thông”, ðại học Cần Thơ 
6. Bài giảng “Công nghệ .NET”, Khoa CNTT – ðại học SPKT Hưng Yên 
7. Bài giảng “Java Nâng cao”, Khoa CNTT- ðại học SPKT Hưng Yên 
8. Các ví dụ tại Website: www.java2s.com 

File đính kèm:

  • pdfLập trình mạng với C#.pdf