Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
703,3 KB
Nội dung
lOMoARcPSD|11346942 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN - - BÁO CÁO BÀI TẬP LỚN HỆ THỐNG CHAT Giáo viên hướng dẫn: Nguyễn Quốc Cường Nhóm 11: Nguyễn Hải Đăng 20181379 Trần Công Vinh 20181846 Trần Quốc Thắng 20181758 Hà Nội, năm 2022 lOMoARcPSD|11346942 Lời nói đầu Trong thời đại 4.0, khoa học cơng nghệ ngày phát triển việc người kết nối giao tiếp, trị chuyện với cho dù có đâu giới đáp ứng đủ công nghệ , ví dụ như: hình thức CHAT trực tuyến theo thời gian thực, gmail,… Trong đó, hình thức chat trực tuyến hình thức phát triển Hiện nay, mạng Lan/Internet có tiến vượt bậc ngày phổ biến đồi sống sinh hoat Điều làm cho nhu cầu liên lạc trao đổi thông tin thông qua mạng Lan/Internet ngày lớn Chính vậy, chương trình Chat mạng Lan/Internet xây dựng để đáp ứng phần nhu cầu cấp thiết Do tình hình dịch bệnh COVID-19 căng thẳng nên nhóm chúng em trao đổi trực tiếp với mà phải thông qua TEAMS nên dù cố gằng hồn thành báo cáo nhóm cịn thiếu sót định q trình làm Do mong thầy góp ý cho nhóm chúng em để chúng em hiểu rõ có nhìn hồn thiện dự án Nhóm em xin cảm ơn thầy lOMoARcPSD|11346942 MỤC LỤC Yêu cầu, mục tiêu, kết cần đạt 1.1 Yêu cầu: 1.2 Mục tiêu, kết cần đạt: Kế hoạch thực Phân tích – thiết kế 3.1 Phân tích yêu cầu chức 3.2 Thiết kế kiến trúc 3.3 Thiết kế module 3.4 Triển khai 3.4.1 Lập trình cho máy chủ 3.4.2 Lập trình cho máy khách 3.4.3 Thiết lập kết nối máy chủ máy khách 12 3.4.4 Thiết kế ứng dụng Chat 13 Đánh giá kiểm tra 21 4.1 Đánh giá thiết kế kiến trúc 21 4.2 Đánh giá thiết kế module 22 4.3 Đánh giá thiết kế giao diện 23 Kết luận 23 Tài liệu tham khảo 24 lOMoARcPSD|11346942 Yêu cầu, mục tiêu, kết cần đạt 1.1 Yêu cầu: Xây dựng chương trình Chat hoạt động mạng Lan/Internet với chức như: gửi tin nhắn, lưu thông tin bạn bè 1.2 Mục tiêu, kết cần đạt: - Thiết kế kiến trúc hệ thống - Xây dựng mơ hình hoạt động Hệ thống chat - Tìm hiểu, lựa chọn giao thức mạng Hệ thống Chat - Thiết kế hệ thống Chat đơn giản: đăng nhập – đăng xuất khỏi hệ thống chat, trao đổi thông tin (chat) User hệ thống - Tích hợp chức tính Hệ thống Chat: chat riêng, chat nhóm, gửi file, ảnh, lưu trữ liệu người dùng,… lOMoARcPSD|11346942 Kế hoạch thực Bảng phân chia công việc theo tuần Tuần Thành Công việc thực viên Tuần Chung Đánh giá (%) Tìm hiểu kiến trúc hệ thống chat mơ hình 80 mạng, cách hoạt động Tuần Vinh Lựa chọn mơ hình mạng(TCP/IP), giao 80 thức hệ thống Tuần Tuần Tuần Đăng Tìm hiểu mã nguồn, dự án có sẵn 70 Thắng Tìm hiểu mã nguồn, dự án có sẵn 70 Vinh Viết báo cáo, làm slide thuyết trình 85 Đăng Tìm hiểu mã nguồn, dự án có sẵn 90 Thắng Tìm hiểu mã nguồn, dự án có sẵn 90 Đăng Chạy dự án mẫu 60 Thắng Chạy dự án mẫu, đánh giá kết 60 Vinh Đánh giá, phân tích dự án mẫu 75 Vinh Phân tích lại mơ hình mạng, lựa chọn 80 giao thức Thắng Tìm hiểu mã nguồn, dự án có sẵn khác, 90 giao thức mạng Đăng Tuần 10 Tìm hiểu mã nguồn, dự án có sẵn khác 90 Tìm hiểu giao thức sử dụng hệ 75 Vinh Thắng thống chat Tuần 11 Đăng Thiết kế mơ hình chat Client, Server 80 Vinh Tìm hiểu thư viện socket.io 75 lOMoARcPSD|11346942 Tuần 12 Thắng Tìm hiểu ngơn ngữ HTML 75 Đăng Tìm hiểu ngơn ngữ JavaScript 85 Chung Tìm hiểu code mã nguồn, triển khai viết 80 code, cài đặt phần mềm, thư viện Tuần 13 Tìm hiểu, thiết kế đăng nhập User 60 Thiết kế phần đăng nhập User + thiết kế 90 Vinh + Thắng Đăng giao diện Tuần 14 Vinh Đánh giá, thiết kế lại 70 Đăng + Tìm hiểu, thiết kế phần chat, fix lỗi 80 Đánh giá lại hệ thống, làm tập lớp 70 Đăng + Đánh giá hệ thống, fix lỗi, bổ xung tính 70 Thắng Tuần 16 Chung Đánh giá mơ hình, fix lỗi 90 Tuần 17 Chung Báo cáo 90 Thắng Tuần 15 Vinh + Thắng Phân tích – thiết kế 3.1 Phân tích yêu cầu chức Đề tài: Thiết kế hệ thống chat mạng Internet Phân tích: Người dùng tương tác trực tiếp trang web (máy khách Client) để chat với nhờ có máy chủ (Server) trung gian Yêu cầu, chức năng: Với yêu cầu đề tài Ta chia thể loại chat ứng dụng, bao gồm: Chat chung, Chat riêng, Chat nhóm Ngồi ra, cần thiết kế thêm giao diện đăng nhập đơn giản để xác định người dùng, với đăng xuất khỏi hệ thống lOMoARcPSD|11346942 • Chat chung: tất người nhắn tin gửi đến tồn người trực tuyến Phù hợp với việc thông báo đến tất người thông báo, từ thơng báo địa phịng cho người nhóm • Chat nhóm: nhắn tin đến nhóm người cụ thể Một nhóm có từ người trở lên, việc tạo phịng ln ln thành cơng cho tất người dùng Nếu phịng tồn tại, bạn tham gia vào phịng đó, phịng khơng tồn tại, bạn tạo phịng • Chat riêng: phần đặc thù ứng dụng chat việc nói chuyện với người cụ thể Với việc lần đăng nhập thư viện socket.io tạo ID với tên đăng nhập để xác định người dùng Để nhắn tin riêng, bạn cần click vào tên người nhận, việc nhắn tin gửi 3.2 Thiết kế kiến trúc Với yêu cầu trên, trước tiên nhóm tạo địa mạng chung để web trình duyệt truy cập cổng mạng Localhost Các web kết nối với máy chủ (máy tính thơng qua trình duyệt cmd), trao đổi liệu với máy chủ Do đó, web trao đổi liệu thơng qua máy chủ theo mơ hình Client – Server Dựa mã nguồn, thư viện có sẵn, nhóm triển khai xây dựng hệ thống chat tag (User) Kiến trúc hệ thống gồm có phần: • Máy chủ Server: Máy chủ tạo quản lý máy tính (lập trình phần mềm Atom) Máy chủ tạo liên kết với trang web Các tương tác người dùng báo cáo máy chủ thông qua trình duyệt cmd máy tính Máy chủ tạo localhost Các trang web muốn kết nối với thông qua máy chủ phải truy cập vào localhost • Máy khách Client: lOMoARcPSD|11346942 Chính trang web Người sử dụng tương tác web để thực Chat Mọi hoạt động web máy chủ quản lý Các web phải truy cập vào localhost máy chủ tạo để liên kết với máy chủ • Giao tiếp máy chủ máy khách: Máy chủ máy khách giao tiếp với thông qua chế Socket TCP Nhóm em sử dụng thư viện Socket.io với số hàm đặc trưng thư viện để thiết lập tương tác chiều máy chủ máy khách Với hành động đăng nhập, nhắn tin, đăng xuất…( thực web) máy chủ lắng nghe thực lệnh để đáp thơng điệp 3.3 Thiết kế module Xây dựng module dự án: Thiết lập, lập trình tạo máy chủ ảo Lập trình cho máy khách: • Thiết kế giao diện HTML cho máy khách • Thiết kế giao diện người dùng • Thiết lập kết nối đến máy chủ Thiết lập kết nối máy chủ máy khách Thiết kế ứng dụng chat: • Thiết kế phần đăng nhập, đăng xuất cho người dùng • Thiết kế ứng dụng chat riêng, chat nhóm 3.4 Triển khai Trước lập trình, ta tạo thư mục để thiết kế phần mềm: ✓ Tạo mơt thư mục chat-appilcation chứa tồn source project ✓ Tạo file package.json để mô tả khai báo cấu hình project lOMoARcPSD|11346942 ✓ Trong thư mục, tạo file index.html để hiển thị giao diện chat cho người dùng ✓ Tạo file Server.js để cài đặt server cho ứng dụng ✓ Tiếp theo tạo file Chat.js để sử dụng phía client ✓ Cuối file layout.css để thiết kế giao diện cho đề tài Đến ta hoàn thành cài đặt chương trình cho Chat, ta lập trình vào file cụ thể sau: 3.4.1 Lập trình cho máy chủ Để thiết lập máy chủ, nhóm sử dụng thư viện express, module HTTP để tạo máy chủ ảo Sau thành cơng người dùng tương tác với máy chủ qua trang web theo đường link: http:/localhost:3000 (Địa Localhost đặt theo) Mở tập tin Server.js lên Đây nơi yêu cầu express socket.io tạo máy chủ Đồng thời ta sử dụng app.get để phân phối tệp HTML cách dễ dàng Ngoài ra, phải cho express biết tất tệp tĩnh (html, css, js) nằm thư mục chung Cuối cùng, cần mở cổng địa localhost:3000 máy chủ: 3.4.2 Lập trình cho máy khách lOMoARcPSD|11346942 Thiết lập giao diện HTML: Đây giao diện người dùng web Bây giờ, tạo tập tin trangchu.ejs bạn thư mục cơng cộng Trong đó, cần tạo tài liệu HTML với mục sau: • Chúng ta bắt đầu html với thẻ DOCTYPE, html, head, body Trong thẻ head, thêm tiêu đề cho web, liên kết đến thư việc socket.io liên kết đến stylesheet.css (layout.css) • Bên thẻ body, cấu trúc layout bên thẻ div #wrapper Chúng ta có ba khối chính: LoginForm, chatform, input để nhập tin nhắn chúng ta; kèm với div id tương ứng ➢ Thẻ div #LoginForm cửa sổ đăng nhập bao gồm: “What is your name ?”, dòng nhập tên nút bấm Login ➢ Thẻ div #ChatForm chứa chatlog Bao gồm giao diện chat: Danh sách trực tuyến, kênh chat: chat chung, chat nhóm, chat riêng Cùng với nút bấm dòng text gõ tin nhắn ➢ • Phần tử cuối div #wrapper form Chúng ta nạp tất code sau hệ thống sẵn sàng lOMoARcPSD|11346942 Thiết kế giao diện người dùng: Ta sử dụng ngơn ngữ CSS – Cascading Style Sheet language Nó dùng để tạo mẫu định kiểu cho trang web Tất thứ thiết kế Trước tiên trang đăng nhập Rồi đến giao diện chat: Thiết lập kết nối đến máy chủ: Ở client, ta cần xác định địa server để truy cập Sau định địa chỉ, máy khách truy cập máy chủ qua địa lOMoARcPSD|11346942 3.4.3 Thiết lập kết nối máy chủ máy khách Mở tập tin chatjs Tại thời điểm này, cần kết nối với máy chủ io.connect Khi kết nối, phát thông báo để xác nhận kết nối với kiện truy cập Sau đó, mở lại tập tin server.js ghi lại thơng báo máy khách kết nối Ngoài ra, lắng nghe kiện join viết trước để ghi lại liệu từ máy khách Đây cách hoạt động: Bây giờ, ta chạy lại tệp server.js cmd máy làm localhost:3000 trình duyệt, ta thấy thơng báo có người kết nối kèm với ID trình duyệt Địa người dùng Với việc đăng nhập đơn giản với tên đăng nhập, server không lưu giữ thông tin người dùng bao gồm tên địa socketID SocketID địa mà lần sử dụng trình duyệt, thư việc socketio tạo địa ID để xác nhận người dùng Do đó, với lần sử dụng trình lOMoARcPSD|11346942 duyệt tái khởi động lại trình duyệt cũ, thư viện socketID tự tạo địa cho người dùng Cùng với tên đăng nhập, socketID hai liệu để người dùng xác định đích đến muốn gửi tin nhắn riêng cho người khác 3.4.4 Thiết kế ứng dụng Chat 3.4.4.1 Thiết kế phần đăng nhập, đăng xuất cho người dùng Đăng nhập vào hệ thống: Yêu cầu: Hệ thống yêu cầu người dùng cung cấp thông tin đăng nhập tên đăng nhập Nhập xong bấm nút đăng nhập Hệ thống kiểm tra thông báo đăng nhập thành công/ thất bại Nếu thành công, hiển thị giao diện phần mềm Nếu thất bại, yêu cầu đăng nhập lại Một Client đăng nhập xong gửi gói tin thơng báo đến Client khác Q trình đăng nhập: ➢ Mô tả: Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Khi User yêu cầu đăng nhập hệ thống, Client gởi Username cho Server Sau đó, Server kiểm tra Username đăng nhập chưa Nếu đăng nhập thành công, Server lấy danh sách Friend Online User gởi cho User cập nhật lại trạng thái đăng nhập User Đồng thời gởi thơng báo đến Users khác có Friend User đăng nhập Chúng ta cài đặt form đơn giản yêu cầu người dùng nhập tên họ truy cập vào hệ thống Hàm loginForm() mà tạo tạo thành từ form đăng nhập đơn giản yêu cầu người dùng nhập tên họ Ta yêu cầu người dùng phải nhập tên có ký tự thành cơng Nếu sai hệ thống yêu cầu nhập lại Sau đăng nhập thành công, Form đăng nhập hiển thị giao diện chat phần mềm Những tác vụ lập trình file chat.js Khi vào giao diện Chat, có thơng báo cho người dùng: Welcome [username] Đăng xuất khỏi hệ thống Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Yêu cầu: Khi người dùng đăng xuất khỏi hệ thống, server báo cho người dùng khác Nếu người dùng kết nối chừng hệ thống hiểu người dùng sử dụng phần mềm Q trình thực hiện: ➢ Mơ tả: Khi User yêu cầu đăng xuất lại hệ thống, Client hiển thị lại hình đăng nhập đồng thời gởi thông báo xuất đến Server Server gởi thơng báo đăng xuất tới Users có Friend User Bên cạnh đó, Server kiểm tra tất Groups mà User tham gia Server gởi thông báo hủy đến Group mà User người khởi tạo gởi thông báo đăng xuất đến Group mà User tham gia với tư cách thành viên Cuối cùng, Server cập nhật lại trạng thái đăng nhập User Để cho phép người dùng đăng xuất khỏi hệ thống, ta sử dụng jQuery ngắn gọn: Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Sau nhấn nút Logout, server xóa người dùng khỏi hệ thống, chuyển hướng người dùng đến trang đăng nhập từ đầu 3.4.4.2 Thiết kế ứng dụng Chat Ở bước này, ta có kết nối server client, ta dùng để phát gửi tin nhắn với yêu cầu cụ thể tập Ta lập trình tập tin server.js chat.js – thiết lập kết nối máy chủ máy khách Thư viện sử dụng Socket.io Kết nối máy chủ máy khách Sau đăng nhập thành công vào hệ thống Cả server client phát lắng nghe kiện từ bên Với socketio – cung cấp kết nối, giao tiếp từ hai phía Ta sử dụng thư viện socketio để thiết kế ứng dụng chat thời gian thực Hiểu cách đơn giản, từ client A muốn gửi tin nhắn đến client B địa IP khác Client A phát kiện gửi tin nhắn với liệu lên server – Server lắng nghe kiện từ client A sau phát kiện gửi tin nhắn với liệu từ server xuống client B – Client B lắng nghe kiện từ server sau nhận liệu từ server Không vậy, client B đồng thời gửi kiện nhận liệu từ client A lên server – Server lắng nghe kiện từ client B gửi kiện xuống client A, từ client A lắng nghe kiện từ Server biết Client B nhận tin nhắn Tất kiện diễn diễn lập tức, chức socketio vào ứng dụng yêu cầu thời gian thực Chat kênh chung Với tất người đăng nhập, giao diện thỉ ln có kênh chung để gửi tin nhắn đến tồn server Lập trình cho máy chủ máy khách sau o Máy chủ: Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Hàm io.sockets.emit để gửi tin nhắn đến tất client khác server Sau lắng nghe kiện từ người gửi, máy chủ phát kiện tới tất máy khách o Máy khách: Có giao đoạn xử lý: Một người gửi gửi tin nhắn lên kênh chat chung Người gửi phát kiện lên máy chủ: Với máy khách, lắng nghe kiện từ server gửi xuống Sau nghe kiện, mục Chat chung toàn máy khách tin nhắn từ người gửi Chat nhóm Thư viện socketio có thêm tính vượt trội so với thư viện khác giúp cho lập trình phịng chat (Room) Với socketID có sẵn, Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 người dùng ln phịng mình, người khác có thêm tham gia theo socketID có sẵn Tuy nhiên, socketID không cố định nên việc xác định phịng khó Nên để tham gia vào nhóm chat riêng, ta lập trình cho việc người dùng tạo phịng tham gia phịng theo tên phịng Để đơn giản hóa cho việc lập trình, người dùng thời điểm tham gia phòng Nếu muốn tham gia phịng khác, bắt buộc người dùng khơng phòng Nếu phòng, người dùng phải rời phòng trước vào phòng o Máy khách: Người dùng muốn tạo tham gia phòng, phải điền thơng tin tên phịng Nếu phịng có sẵn, người dùng tham gia vào phịng Nếu khơng, người dùng tạo phòng Nếu phòng tạo không chứa người dùng, máy chủ tự động xóa phịng Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Sau phịng, tin nhắn phịng bị xóa cửa sổ nhắn Từ người gửi, gửi kiện nhắn tin lên server Server lắng nghe kiện trả cho người dùng phòng o Máy chủ: Lắng nghe kiện từ máy khách, máy chủ gửi kiện tham gia phòng cho máy khách Tên phịng khơng dài 10 ký tự Sau tham gia phòng, đến gửi tin nhắn đến người phòng Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 Cú pháp io.sockets.in(socket.Phong).emit để gửi đến người phịng Cuối lập trình cho việc rời phịng xóa tin nhắn cũ Từ máy khách: Đến máy chủ: Chat riêng cho người khác Thư viện socketio có hỗ trợ đầy đủ tính chat: bao gồm tất người dùng nhận tin nhắn, tất người dùng trừ người gửi nhận tin nhắn, nhóm người dùng nhận tin nhắn, nhắn tin riêng với người cụ thể Để nhắn tin riêng, socketio sử dụng lệnh io.to(socketID_người nhận).emit để gửi tới người nhận Do đó, để dễ dàng thao tác cho việc nhắn tin riêng, ta lập trình thêm danh sách người trực tuyết bao gồm tên socketid người Từ đó, người muốn gửi thơng tin đến người khác, họ việc bấm chọn vào tên người gửi để truy xuất địa socketID cho máy chủ đọc Với hoạt động Socket.io, việc gửi tin từ người A sang B chuyển lên cho máy chủ để đọc kiện gửi đến đích, sau trả phản hồi cho bên gửi Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 o Máy khách: o Máy chủ: Đánh giá kiểm tra 4.1 Đánh giá thiết kế kiến trúc - Xây dựng kiến trúc đơn giản dựa mơ hình Client- Server với phần: Server, Client, Giao tiếp máy chủ máy khách - Kiến trúc đáp ứng yêu cầu đề thiết kế hệ thống chat - Với việc sử dụng mơ hình client – server nên có vài ưu điểm: o Client server có khả chống tải mạng Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 o Mơ hình client server hỗ trợ, giúp làm việc máy tính có hỗ trợ giao thức truyền thơng Client server đảm bảo tồn vẹn liệu có cố xảy o Dễ dàng mở rộng, xây dựng hệ thống mạng o Chỉ cần chung định dạng giao tiếp mà không cần chung tảng hoạt động o Có thể có nhiều server làm dịch vụ, chúng nằm nhiều máy tính máy tính - Bên cạnh có nhược điểm: o Do phải trao đổi liệu máy tính khác khu vực địa lý cách xa Vì vậy, khả bảo mật thơng tin mạng hạn chế Client server Tuy nhiên vấn đề có số giao thức hỗ trợ bảo mật liệu truyền tải Giao thức sử dụng phổ biến HTTPS o Cần bảo trì, bảo dưỡng server thường xuyên 4.2 Đánh giá thiết kế module Nhóm tự chia module nhỏ để dễ dàng quản lý xử lý lỗi trình lập trình - Module lập trình cho máy chủ: Nhóm thiết lập mơi trường máy chủ ảo, giúp người dùng tương tác với máy chủ thông qua trang web Tuy nhiên chưa lập trình database để lưu liệu người dùng, thông tin đăng nhập lịch sử nhắn tin - Module lập trình cho máy khách Nhóm sử dụng giao diện HTML thân thiện với người dùng web Thông qua lập trình, nhóm thiết kế giao diện đăng nhập Với cách lập trình giúp Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 người dùng thuận tiện cách sử dụng, thay phải cài đặt phần mềm người dùng sử dụng trình duyệt web cách đơn giản - Module thiết lập kết nối máy chủ máy khách Thông qua việc sử dụng thư viện socket.io để thiết lập kết nối máy chủ máy khách, nhóm thiết kế ứng dụng chat mức với chức chat chung, chat riêng người dùng với Tuy nhiên sản phẩm nhóm cịn có hạn chế dừng lại mức tìm hiểu gửi tin nhắn văn bản, chưa thể gửi tệp tin đính kèm, cịn tính chưa thể lập trình database để lưu lại nội dung chat cũ 4.3 Đánh giá thiết kế giao diện Giao diện tương đối thân thiện với người dùng, phần chức tách biệt với để tránh người dùng nhầm lẫn Tuy nhiên thời gian kỳ học tập có hạn, bên cạnh kiến thức lập trình cịn hạn chế nên giao diện đơn giản Kết luận Dựa yêu cầu ban đầu với nỗ lực, cố gắng thành viên, nhóm chúng em xây dựng Hệ thống Chat tương đối hoản chỉnh, hoạt động ổn định Hệ thống Chat đáp ứng yêu cầu Đăng nhập – đăng xuất khỏi hệ thống, chat riêng User, chat nhóm nhiều User Giao diện người dùng tương đối thân thiện với người dùng Tuy nhiên số tính lưu trữ thơng tin, gửi file, ảnh,… nhóm đặt ban đầu chưa thể hồn thành kịp Hướng phát triển: • Hệ thống chat tích hợp thêm tính mới: lưu trữ thông tin người dùng (tên đăng nhập, lịch sử nhắn tin, truyền file ảnh, video,… • Giao diện đơn giản với người dùng Kết tập lớn cố gắng ba thành viên nhóm Tuy Downloaded by Quang Tr?n (tranquang141994@gmail.com) lOMoARcPSD|11346942 vậy, kết dừng lại mức yêu cầu mà thầy đặt ra, nhóm em tiếp tục ý tưởng hoàn thiện sản phẩm thời gian tới Do kiến thức chưa nhiều kinh nghiệm cịn ít, sản phầm cịn nhiều nhược điểm thiếu sót nên chúng em mong nhận ý kiến đóng góp thầy Chúng em chân thành cảm ơn Tài liệu tham khảo [1] [2] https://growupcareer.com/2020/04/14/ https://vdodata.vn/tim-hieu-ve-mo-hinh-client-server-va-client-serverla-gi/ [3] https://www.semtek.com.vn/mo-hinh-client-server/ [4] https://www.bkns.vn/so-sanh-mo-hinh-osi-va-tcp-ip.html [5] https://www.totolink.vn/article/149-mo-hinh-tcp-ip-la-gi-chuc-nangcua-cac-tang-trong-mo-hinh-tcp-ip.html [6] https://viettuts.vn/lap-trinh-mang-voi-java/giao-thuc-tcp-ip [7] https://viblo.asia/p/tim-hieu-giao-thuc-tcp-va-udp-jvEla11xlkw [8] https://heroku.com Downloaded by Quang Tr?n (tranquang141994@gmail.com)