Mã tài liệu: 214974
Số trang: 10
Định dạng: pdf
Dung lượng file: 434 Kb
Chuyên mục: Tổng hợp
mạng. Các ứng dụng TCP/IP thường được viết bằng C/C++ và gọi các hàm thư viện
được hỗ trợ sẵn. Tuy nhiên, do có nhiều phiên bản thư viện hàm trên Unix và Windows nên
người lập trình gặp khó khăn trong việc tái sử dụng mã nguồn đã được viết. Mặt khác, bản
thân giao tiếp lập trình của các hàm thư viện này làm phát sinh những đoạn mã nguồn rườm
rà, trùng lặp và không rõ ràng. Trong bài báo này, chúng tôi áp dụng các mẫu thiết kế hướng
đối tượng để phát triển hệ thống lớp hỗ trợ lập trình giao thức TCP/IP. Hệ thống lớp này giải
quyết vấn đề tương thích trên nhiều môi trường, thuận lợi cho việc tái sử dụng mã nguồn, đồng
thời làm rõ ràng ngữ nghĩa của các đối tượng trong các ứng dụng truyền thông theo giao thức
TCP/IP.
Từ Khoá: Mẫu thiết kế, Giao thức TCP/IP, Lập trình hướng đối tượng
1. GIỚI THIỆU
Các mẫu thiết kế hướng đối tượng [1,3,4,8] được sử dụng rộng rãi và có hiệu quả trong
việc thiết kế các phần mềm trong nhiều lĩnh vực khác nhau. Những mẫu thiết kế này có thể áp
dụng giải quyết nhiều vấn đề đa dạng trong quá trình phát triển phần mềm hướng đối tượng.
Giao thức TCP/IP [2,5] là một trong những giao thức mạng quan trọng được sử dụng thông
dụng nhất hiện nay để phát triển các phần mềm mạng và truyền thông. Tuy nhiên, khi viết các
chương trình C/C++ với giao thức TCP/IP, mặc dù cùng một yêu cầu chức năng nhưng người
lập trình thường phải viết những chương trình nguồn riêng cho từng môi trường như Unix và
Windows. Mặt khác, mã nguồn C/C++ có sử dụng các hàm trong thư viện lập trình TCP/IP
thường rườm rà, trùng lặp, và khó tái sử dụng. Bài báo này nhằm mục đích trình bày kết quả
nghiên cứu của chúng tôi trong việc áp dụng các mẫu thiết kế kinh điển để xây dựng một hệ
thống lớp đối tượng giải quyết các vấn đề trong giao tiếp lập trình của các hàm trong thư viện
lập trình TCP/IP. Trong phần 2 chúng tôi sẽ tóm tắt lại cơ chế lập trình TCP/IP cùng với những
vấn đề nảy sinh. Phần 3 sẽ trình bày việc vận dụng mẫu thiết kế nhằm đề xuất một kiến trúc lớp
giải quyết các đề đã được nêu. Việc cài đặt các lớp đối tượng cùng với một số chi tiết kỹ thuật
sẽ được trình bày trong phần 4. Phần 5 sẽ điểm qua một số nghiên cứu liên quan và trình bày
hướng phát triển.
2. GIAO THỨC LẬP TRÌNH TCP/IP
Phần này trình bày những điểm chính yếu về giao thức TCP/IP, phân tích những vấn đề trở
ngại về giao tiếp lập trình mà chúng tôi rút ra qua kinh nghiệm lập trình và giảng dạy .
Chúng tôi cũng đề xuất hướng giải quyết nói chung để khắc phục các vấn đề nảy sinh.
2.1 Tổng quan về giao thức TCP/IP
Giao thức TCP/IP là giao thức truyền thông được thiết kế để kết nối các máy tính trên mạng
Internet. Thư viện lập trình TCP/IP khởi đầu được cung cấp sẵn trên hệ điều hành họ Unix
và sau đó được phát triển trên Windows (kể từ Windows 3.1 thì thư viện lập trình TCP/IP được
cung cấp miễn phí). Khi Windows NT ra đời thì giao thức TCP/IP được tích hợp sẵn trong hệ
điều hành đưới dạng các thư viện động DLL và giao tiếp lập trình TCP/IP đã được đưa vào
hệ thống hàm lập trình trên Windows, cũng như hệ thống lớp MFC (Microsoft Foundation
Science & Technology Development, Vol 9, No.7- 2006
Trang 6
Classes ) của Microsoft. Hiện nay TCP/IP vẫn đang là giao thức truyền thông quan trọng,
việc sử dụng hiệu quả giao thức TCP/IP trong quá trình xây dựng các ứng dụng mạng vẫn là
một vấn đề mang tính ứng dụng thực tế, rất đáng được thảo luận . Việc liên lạc giữa hai máy
tính theo giao thức TCP được thiết lập dựa trên hai khái niệm: cổng truyền thông (port) và ổ
cắm (socket). Đây chỉ là những khái niệm logic ở mức độ quan niệm của người lập trình:
ã Cổng truyền thông là một số nguyên: các giao thức chuẩn qui ước dùng các số hiệu
cổng từ 0 đến 999 (chẳng hạn giao thức SMTP dùng cổng 25 để chuyển phát thư tín điện tử;
giao thức FTP dùng cổng 21 gởi lệnh và cổng 20 truyền dữ liệu), trong khi giao thức không
chuẩn có thể dùng các số hiệu cổng từ 1000 đến 64000.
ã Khái niệm socket tương tự như các thẻ tập tin (file handle) nhưng được dùng để gởi và
nhận dữ liệu thay vì đọc ghi tập tin. Để hai chương trình có thể liên lạc được với nhau, mỗi
chương trình trên một máy tính sẽ tạo ra một socket và liên kết socket này với cùng một cổng
(thực hiện bằng cách gọi các hàm thư viện TCP/IP).
Chúng ta cũng có thể thiết kế để nhiều chương trình cùng giao tiếp với một chương trình
thông qua cùng một cổng giao tiếp. Thông thường các ứng dụng giao tiếp TCP/IP được viết
bằng ngôn ngữ lập trình C/C++ và gọi các hàm thư viện về socket được cung cấp sẵn. Các
chương trình giao tiếp với nhau theo mô hình khách (client) – chủ (server): chương trình chủ
tạo ra thẻ socket và kết buộc với cổng truyền thông và thông tin của máy chủ, chạy sẵn và chờ
chương trình khách nối kết vào. Chương trình khách cũng tạo ra một thẻ socket và dùng thẻ
socket này để kết nối vào máy chủ (nhờ vào địa chỉ IP của máy chủ – ví dụ như "192.158.68.1"
– cùng với cổng truyền thông). Sau khi thiết lập được kết nối, các thẻ socket được dùng để làm
"đường truyền" trao đổi dữ liệu giữa các chương trình. Hình 1 tóm tắt các hàm tiêu biểu của thư
viện socket C/C++ theo dạng BSD (Berkeley-style, thường dùng trên các máy Unix, Linux .)
và của thư viện trên Windows. Chúng ta có thể chú ý các điểm so sánh như sau về mặt lập
trình
Những tài liệu gần giống với tài liệu bạn đang xem
📎 Số trang: 1
👁 Lượt xem: 535
⬇ Lượt tải: 16
📎 Số trang: 65
👁 Lượt xem: 404
⬇ Lượt tải: 16
📎 Số trang: 50
👁 Lượt xem: 283
⬇ Lượt tải: 16
📎 Số trang: 89
👁 Lượt xem: 437
⬇ Lượt tải: 16
📎 Số trang: 6
👁 Lượt xem: 319
⬇ Lượt tải: 18
📎 Số trang: 87
👁 Lượt xem: 437
⬇ Lượt tải: 16
📎 Số trang: 122
👁 Lượt xem: 390
⬇ Lượt tải: 16
📎 Số trang: 96
👁 Lượt xem: 617
⬇ Lượt tải: 17
📎 Số trang: 27
👁 Lượt xem: 537
⬇ Lượt tải: 16
📎 Số trang: 178
👁 Lượt xem: 458
⬇ Lượt tải: 16
📎 Số trang: 87
👁 Lượt xem: 512
⬇ Lượt tải: 17
Những tài liệu bạn đã xem
📎 Số trang: 10
👁 Lượt xem: 472
⬇ Lượt tải: 16