Mô hình client/ server• Các kiến trúc client/ server: - Kiến trúc client/ server hai tầng - Kiến trúc client/ server ba tầng - Kiến trúc client/ server n_tầng... Mô hình client/ server•
Trang 1Trường Đại Học Vinh Khoa Công Nghệ Thông Tin
Đồ Án Tốt Nghiệp
Bài ToánXây dựng ứng dụng chat và truyền tệp tin qua mạng
theo mô hình khách/chủ(client/ server)
GVHD: LÊ HỒNG TRANG SVTH : NGUYỄN THỊ CAO BẰNG
Trang 2Nội Dung
1 Lý do và mục đích
2 Phương pháp thực hiện
3 Kết luận
Trang 5Mô hình client/ server
• Khái niệm:
- Mô hình mạng trên đó có các máy chủ và máy tớ
giao tiếp với nhau theo 1 hoặc nhiều dịch vụ được gọi
là mô hình client/server.
- 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.
Trang 6Mô hình client/ server
• Các kiến trúc client/ server:
- Kiến trúc client/ server hai tầng
- Kiến trúc client/ server ba tầng
- Kiến trúc client/ server n_tầng
Trang 7Mô hình client/ server
• Kiến trúc client/ server hai tầng:
Mô hình client/ server hai tầng
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 client/ server
• Kiến trúc client/ server ba tầng:
Mô hình client/ server ba tầng
- Tầng trình diễn: chứa các giao diện đồ họa
- Tầng trung gian hay còn gọi là tầng tác nghiệp
- Tầng thứ ba chứa dữ liệu cần cho ứng dụng
Trang 9Mô hình client/ server
• Kiến trúc client/ server n_tầng:
Là kiến trúc thêm một hoặc nhiều tầng vào kiến trúc hai tầng.
• Ưu điểm và nhược điểm
- Ưu điểm:
* Dữ liệu được lưu trữ tập trung nên dễ bảo mật
* Tài nguyên dịch vụ được tập trung nên dễ chia
Trang 10Tìm hiểu về socket
• Khái niệm:
- Socket là giao diện lập trình ứng dụng(API-Application
Programming Interface).
- Được giới thiệu lần đầu tiên trong ấn bản UNIX-BSD 4.2
dưới dạng các hàm hệ thống theo cú pháp ngôn ngữ C
(socket(), bind(), send(), receive(), read(), write(), close()…).
- Ngày nay, socket được hỗ trợ hầu hết trong các hệ điều hành
và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau như: C, C++, C#, Java, visual basic, ….
• Phân loại: Gồm 3 loại
Trang 11Phân loại socket
• Socket hướng kết nối:
- Có một đường kết nối ảo giữa 2 tiến trình
- Một trong 2 tiến trình phải đợi tiến trình kia yêu cầu kết nối.
- Có thể sử dụng để liên lạc theo mô hình
Client/Server.
- Trong mô hình Client/Server thì Server lắng nghe và chấp nhận một yêu cầu kết nối
- Mỗi thông điệp gửi đều có xác nhận trở về
- Các gói tin truyền đi tuần tự.
Trang 12Phân loại socket
• Socket không hướng kết nối:
- Hai tiến trình liên lạc với nhau không kết nối trực tiếp.
- Thông điệp gửi đi phải kèm theo địa chỉ của người nhận
- Thông điệp có thể gửi nhiều lần
- Người gửi không chắc chắn thông điệp tới tay người nhận
- Thông điệp gửi sau có thể đến đích trước thông điệp gửi trước
Trang 13Phân loại socket
Trang 14Phân loại socket
SocketType ProtocolType Mô tả
Trang 15Các không gian tên( NameSpace) của
Trang 17- Parse: Chuyển IP dạng xâu về IP chuẩn
- ToString: Trả địa chỉ IP về dạng xâu.
- TryParse: Kiểm tra IP có ở dạng xâu hợp lệ hay
không?
Trang 18- 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 20Số hiệu cổng của socket
• Để có thể thực hiện các cuộc giao tiếp, một trong hai quá trình
phải công bố số hiệu cổng của socket mà mình sử dụng.
• Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ
thống.
• Quá trình còn lại cũng được yêu cầu tạo ra một socket.
• Ngoài số hiệu cổng, hai bên giao tiếp còn phải biết địa chỉ IP
Trang 21Mộ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 socket
Trang 22- Xây dựng thêm các tính năng chatvoid, webcam.
- Phát triển đóng gói thành một phần mềm hoàn
chỉnh.