Chương 3: MÔ TẢ ỨNG DỤNG

Một phần của tài liệu Dùng Java để xây dựng 1 trương trình Chat qua mạng theo mô hình Client/Server (Trang 28 - 33)

3.1. GIỚI THIỆU ỨNG DỤNG

Ứng dụng được xây dựng nhằm mục đích chia sẻ audio giữa 1 máy (tạm gọi là server) và các máy còn lại trong 1 nhóm nhất định (các máy client).

Client:

Khi các máy client kết nối vào server thì các client sẽ nhận được các đoạn audio được gửi bởi server và phát ra âm thanh ở phía client.

Client kết nối vào server tại 1 thời điểm sẽ nghe được âm thanh trực tiếp từ các client khác.

Client có quyền không nghe đoạn âm thanh, và gửi yêu cầu về server .

Server:

Server nhận các đoạn audio từ các client và bắt đầu gửi audio (dưới dạng Stream) cho các client khác.

Server sẽ biết được danh sách các client đang kết nối tới mình (mỗi client kết nối sẽ được hiển thị lên bảng tại server). Server sẽ biết được thông tin chi tiết của từng Client và gửi danh sách nick name cho các client còn lại.

Server có quyền đóng kết nối và không cho bất cứ 1 client nào kết nối.

3.2. KIẾN TRÚC ỨNG DỤNG

3.2.2. Gói server

Lắng nghe và chấp nhận kết nối từ các Client. Nhận và gửi thông điệp cho các Client.

3.2.3. Gói client

Kết nối và gửi thông điệp cho Server.

3.3. MÔ HÌNH THÔNG ĐIỆP GIỮA CLIENT VÀ SERVER

Mô hình Client-Server sử dụng Socket ở chế độ có kết nối (TCP)

Ta thấy Server đã khởi tạo một Socket gồm IP và port 999 và sẵn sàng lắng nghe kết nối trên cổng 999 từ Client.

Giai đọan 2: Client tạo Socket, yêu cầu thiết lập một nối kết với Server.

Clie nt yêu cầu khởi tạo một socket để sử dụng các dịch vụ của tầng vận chuyển, hệ thống sẽ kiểm tra xem port nào còn trống sẽ tự động gán cho socket của Client.

Client gởi yêu cầu kết nối đến Server có địa chỉ IP và port xác định:

Sau khi Server chấp nhận kết nối của Client, khi đó một kênh giao tiếp ảo được hình thành, Client và Server có thể trao đổi thông tin với nhau.

Sau khi chấp nhận yêu cầu kết nối, Server đợi Client gởi yêu cầu đến. Ở đây, Client gởi lần lượt các byte của dữ liệu lên Server.

Sau khi nhận được dữ liệu từ Client, Server tiến hàng chuyển đổi dữ liệu nhận được là các byte dữ liệu thành tên của file mà Client đã gởi và dữ liệu của file. Trong quá trình này, giữa Client và Server sẽ liên tục trao đổi thông tin với nhau về các các dữ liệu đã nhận được, tuân thủ theo các quy tắc của giao thức đã xác lập từ trước.

Sau khi dữ liệu đã gởi xong, client sẽ gởi yêu cầu hủy kết nối và kênh ảo kết nối với Server sẽ bị đóng. Như vậy, toàn bộ quá trình sẽ diễn ra như sau.

Một phần của tài liệu Dùng Java để xây dựng 1 trương trình Chat qua mạng theo mô hình Client/Server (Trang 28 - 33)