Phương pháp thực hiện• Ngôn ngữ sử dụng: - Ngôn ngữ lập trình C# • Các kiến thức ứng dụng: - Tìm hiểu về mô hình khách chủClient/Server.. Mô hình khách chủClient/Server- Kiến trúc khách
Trang 1Trường Đại Học Vinh Khoa Công Nghệ Thông Tin
Đồ Án Tốt Nghiệp
Bài Toán Xây dựng ứng dụng chat và truyền tệp tin qua
mạng theo mô hình khách/chủ
Trang 2Nội Dung
1 Lý do và mục đích
2 Phương pháp thực hiện
3 Giới thiệu về ứng dụng
4 Kết luận
Trang 31 Lý do và mục đích
• Lý do chọn đề tài:
- Sự phổ biến của máy tính trong đời sống hàng ngày
- Nhu cầu liên lạc, trao đổi thông tin qua mạng LAN ngày càng lớn
• Mục đích:
Xây dựng ứng dụng chat và truyền tệp tin
Trang 42 Phương pháp thực hiện
• Ngôn ngữ sử dụng:
- Ngôn ngữ lập trình C#
• Các kiến thức ứng dụng:
- Tìm hiểu về mô hình khách chủ(Client/Server)
- Tìm hiểu về lập trình Socket trong C#
Trang 5Mô hình khách chủ(Client/Server)
• Khái niệm:
- Là mô hình phổ biến và được chấp nhận rộng rãi trong các hệ thống phân tán
- Trong mô hình này sẽ có:
Một tập các tiến trình mà mỗi tiến trình đóng vai trò như là một trình quản lý tài
nguyên cho một tập hợp các tài nguyên cho
trước
Trang 6Mô hình khách chủ(Client/Server)
Một tập hợp các tiến trình client trong đó mỗi tiến trình thực hiện một tác vụ nào đó cần truy xuất tới tài nguyên phần cứng hoặc phần mềm dùng chung
• Các kiến trúc khách chủ(Client/Server):
- Kiến trúc khách chủ hai tầng
- Kiến trúc khách chủ ba tầng
- Kiến trúc khách chủ n_tầng
Trang 7Mô hình khách chủ(Client/Server)
- Kiến trúc khách chủ hai tầng:
Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất,
tầng này truyền tin với tầng lưu trữ dữ liệu tập trung
Tầng trình diễn thông thường là client,
Tầng lưu trữ dữ liệu là server
Trang 8Mô hình khách chủ(Client/Server)
- Kiến trúc khách chủ ba tầng:
Tầng đầu tiên là tầng trình diễn thường bao
gồm các giao diện đồ họa
Tầng thứ hai là tầng trung gian hay tầng tác
nghiệp
Tầng thứ ba chứa dữ liệu cần cho ứng dụng, về
cơ bản là chương trình thực hiện các lời gọi
hàm để tìm kiếm dữ liệu cần thiết
Trang 9Mô hình khách chủ(Client/Server)
- Kiến trúc khách chủ n_tầng:
Tầng giao diện người dùng: quản lý tương tác của người dùng với ứng dụng
Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng và các yêu cầu của
người dùng được quản lý như thế nào.
Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp,
Trang 10Lập trình Socket trong C#
• Phân loại Socket:
- Socket hướng kết nối(Tcp)
- Socket không hướng kết nối(Udp)
- Raw socket
Sự khác nhau cơ bản giữa Socket hướng kết nối và socket không hướng kết nối đó là: Với socket hướng kết nối thì gói tin truyền đi chắc chắn sẽ tới người nhận
Trang 11Lập trình Socket trong C#
• Khái niệm địa chỉ(Address) và cổng(Port):
Do mỗi máy tính chỉ có duy nhất một đường truyền dữ liệu(để gửi và nhận)
Vì vậy, khi trao đổi dữ liệu cho nhau thì hai
ứng dụng cần phải biết thông tin tối thiểu là địa chỉ(address) và số hiệu cổng(port) của ứng dụng kia
Trang 12Lập trình Socket trong C#
• Lớp IPAddress:
- Các thuộc tính:
Any: Cung cấp một địa chỉ IP để chỉ ra rằng
Server phải lăng nghe trên tất cả các Card mạng
BroadCast: Cung cấp một địa chỉ IP quảng bá
LoopBack:Trả về một địa chỉ lặp
Trang 13Lập trình Socket trong C#
- Các phương thức:
Phương thức khởi tạo:
IPAdress(Byte[]);
IPAdress(Int64);
IsLoopBack: Cho biết địa chỉ có phải địa chỉ lặp không?
Parse: Chuyển IP dạng xâu về IP chuẩn
ToString: Trả địa chỉ IP về dạng xâu.
Trang 14Lập trình Socket trong C#
• Lớp IPEndPoint:
- Phương thức khởi tạo:
IPEndPoint(Int64,Int32);
IPEndPoint(IPAdress,Int32);
- Creat: Tạo một EndPoint từ một địa chỉ Socket
- ToString: Trả về địa chỉ IP theo số hiệu cổng theo khuôn dạng địa chỉ cổng, ví dụ:
192.168.1.2:9030
Trang 15Lập trình Socket trong C#
• Lớp DNS:
Phương thức:
- HostName:Cho biết tên của máy được phân giải
- GetHostAdress: Trả về tất cả IP của một trạm
- GetHoastEntry: Giải đáp tên hoặc địa chỉ
Trang 16Lập trình Socket trong C#
• Một số thuộc tính trong Socket:
- Accept(): chấp nhận một kết nối vào socket
- Bind(): Gắn tên định danh cho socket
- Close(): Đóng một kết nối socket
- Connect(): Khởi tạo một kết nối tới 1 socket
- Listen(): Mở một socket trên cổng để đợi 1 kết nối tới.
- Send(): Gửi một dữ liệu từ một kết nối socket
- Receive(): Nhận một dữ liệu từ một kết nối
Trang 173 Giới thiệu về ứng dụng
• Phía máy khách:
- Xác định địa chỉ Server
- Tạo Socket
- Kết nối đến Server
- Gửi nhận dữ liệu theo giao thức đã thiết kế
- Đóng Socket
Về giao diện bao gồm:
- Hiển thị nội dung chat.
- Danh sách các máy khách kết nối với máy chủ
Trang 183 Giới thiệu về ứng dụng
• Phía máy chủ:
- Tạo một socket
- Liên kết với một IPEndPoint cục bộ
- Lắng nghe kết nối
- Chấp nhận kết nối
- Gửi nhận dữ liệu theo giao thức đã thiết kế
- Đóng kết nối sau khi đã hoàn thành và trở về trạng thái lắng nghe chờ kết nối mới.
Về giao diện: Hiển thị các máy khách tham gia kết nối
Trang 194 Kết luận
(Chương trình vẫn chưa truyền tệp tin được nên em chưa viết báo cáo cho phần này)