Báo cáo này sẽ trình bày chỉ tiết về quá trình phát triển ứng dụng, bao gồm từ việc thiết kế hệ thống theo mô hình Client — Server, tích hợp Socket IO để quán lý kết nối, cho đến cách xử
Bộ giao thức liên quang (TP Prot0COÌ) .- c5 S3 3 xnxx 6
Các giao thức liên mạng là bộ giao thức nổi tiếng nhất thế giới, cho phép giao tiếp qua mọi loại mạng, bao gồm mạng LAN và WAN Trong số các giao thức này, Giao thức điều khiển truyền tải (TCP) và Giao thức liên mạng (IP) hoạt động ở tầng 4 và tầng 3 của mô hình OSI Bộ giao thức này được phát triển vào giữa những năm 1970 bởi Văn phòng các dự án nghiên cứu chuyên sâu của Bộ Quốc phòng Mỹ (DARPA) nhằm xây dựng một mạng chuyển mạch gói, giúp trao đổi thông tin giữa các hệ thống máy tính khác nhau trở nên dễ dàng hơn DARPA đã tài trợ cho nghiên cứu tại Đại học Stanford, Bolt, Beranek, and Newman (BBN), dẫn đến việc hoàn thành bộ giao thức Liên mạng vào cuối thập niên 70.
Bộ giao thức IP không chỉ bao gồm hai giao thức chính mà còn quy định nhiều giao thức khác cho tầng ứng dụng, như giao thức dịch vụ thư điện tử, mô phỏng thiết bị đầu cuối và truyền tải tập tin Được mô tả trong bảng báo cáo kỹ thuật REC 791, IP là giao thức cốt lõi trong Bộ giao thức liên mạng Kết hợp với giao thức TCP, IP đóng vai trò trung tâm trong bộ giao thức Internet và có hai chức năng chính.
- Cung cấp dịch vụ truyền tải dạng không nối kết dé chuyên tải các gói tin qua một liên mạng
- Phân mãnh cũng như tập hợp lại các góitin để hỗ trợ cho tầng liên kết đữ liệu với kích thước đơn vi truyền đữ liệu là khác nhau
Khoa Khoa Hoc May tinh 6 GVHD: ThS Lê Viết Trương
$% Cấu trúc địa chỉ IP:
Mỗi máy tính trên mạng TCP/IP phải được gán một địa chỉ luận lý có chiều dài 32 bits, goi la dia chi IP
Hinh 3- Mé ta TCP Socket
Địa chỉ IP 32 bit được chia thành hai phần: phần nhận dạng mạng (network id) và phần nhận dạng máy tính (host id) Phần nhận dạng mạng dùng để xác định một mạng và cần được gán bởi Trung tâm Thông tin Mạng Internet (InterNIC) để kết nối vào mạng Internet Trong khi đó, phần nhận dạng máy tính dùng để xác định một máy tính trong mạng đó.
Khoa Khoa Hoc May tinh 7 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
No table of figures entries found
Class A: [0 | Network 1D] Host 1D | Very large Network
Class B: Host ID Medium size Network
Class C: [ [TT 8JEENẽiwariiiÐ ST Host 1b) Smau Network cưôô D:EEIEEEISINNNNNNE-SKm ` -
Class E2: DE Sra) | Reserved (unused)
Hình 4: Phân loại địa chỉ HP
Bộ giao thức TCP, co cọ g TH nọ HT 4p 8 1.3.3 Lap trimh SOCKET .csccsssssssssssssessssesssessssessseessnecssnecsssecsssccssscsaseesaceeseenss 10
TCP là giao thức vận chuyển tinh vi, cung cấp dịch vụ truyền tin cậy bằng cách phân luồng các bytes Nó hỗ trợ truyền dữ liệu hai chiều đồng thời, cho phép hai luồng bytes chạy theo hai hướng trong mỗi kết nối.
TCP bao gồm cơ chế điều khiển thông lượng cho phép bên nhận giới hạn lượng dữ liệu mà bên gửi có thể truyền tại một thời điểm Ngoài ra, TCP hỗ trợ cơ chế đa hợp, cho phép nhiều tiến trình trên một máy tính thực hiện đối thoại đồng thời với các đối tác của chúng.
Những yếu tổ cơ bản của bộ giao thức TCP
TCP là giao thức mạng đảm bảo truyền dữ liệu đáng tin cậy giữa hai thiết bị, sử dụng các cơ chế như xác nhận (acknowledgment), kiểm tra lỗi (error checking) và tải gửi lại (retransmission) để ngăn chặn mất mát, hỏng hóc hoặc sai thứ tự dữ liệu.
Kết nối hướng đôi (full-duplex) trong TCP cho phép hai thiết bị giao tiếp đồng thời, giúp dữ liệu được truyền đi và nhận về một cách hiệu quả Tính năng này nâng cao khả năng quản lý và tối ưu hóa quá trình truyền tải thông tin.
Khoa Khoa Học Máy Tính 8, dưới sự hướng dẫn của ThS Lê Viết Trương, nghiên cứu về luồng dữ liệu TCP, sử dụng cơ chế cửa sổ trượt (sliding window) để quản lý việc truyền dữ liệu giữa hai thiết bị Cơ chế này không chỉ cho phép điều chỉnh tốc độ truyền dữ liệu mà còn kiểm soát hiệu quả việc tràn bộ đệm.
TCP sử dụng cổng để định danh các ứng dụng và dịch vụ trên mạng Mỗi kết nối TCP được xác định bởi một cặp địa chỉ IP và số cổng.
- Giao thức kết nối: TCP sử dụng mô hình giao thức kết nỗi ba bước (three-way handshake) đề thiết lập và chấm dứt kết nối mạng
- Ba bước này bao gồm: yêu cầu kết nối (SYN), phản hồi kết nối (SYN-ACK) và xác nhận kết nối (ACK)
Giao thức TCP được thiết kế để hoạt động độc lập với các ứng dụng cụ thể, cho phép các ứng dụng truyền dữ liệu mà không cần quan tâm đến việc quản lý kết nối và đảm bảo độ tin cậy.
Khoa Khoa Hoc May tinh 9 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Acknowledgment Number (32) Bytes 20 lon (2) Reserved (6)| Code Bits(6) Window (16)
Header TCP là phần quan trọng của gói tin TCP, chứa các trường thông tin thiết yếu để điều khiển việc truyền tải dữ liệu qua mạng Các trường chính trong header TCP bao gồm thông tin về số hiệu cổng, số thứ tự, và các cờ điều khiển, giúp đảm bảo dữ liệu được gửi và nhận một cách chính xác và hiệu quả.
Công nguồn, hay còn gọi là số công nguồn của thiết bị gửi dữ liệu, đóng vai trò quan trọng trong việc xác định ứng dụng hoặc dịch vụ cụ thể trên thiết bị đó.
- Destination Port (Céng dich): Day la s6 cong dich cua thiét bi nhan dit liéu Công đích xác định ứng dụng hoặc dịch vụ cụ thể trên thiết bị này
Số thứ tự trong một segment là chỉ số của byte đầu tiên trong dữ liệu, giúp đảm bảo việc lắp ráp dữ liệu tại điểm đích diễn ra theo đúng thứ tự.
Số ACK (Acknowledgment Number) là số xác nhận của byte tiếp theo mà thiết bị nhận mong đợi từ thiết bị gửi Nó đóng vai trò quan trọng trong việc xác nhận thông tin đã được truyền tải thành công.
Dữ liệu đã được nhận và thông báo cho thiết bị gửi biết byte tiếp theo mà nó có thể gửi Khoa Khoa Học Máy Tính 10, dưới sự hướng dẫn của ThS Lê Viết Trương, nhấn mạnh tầm quan trọng của việc quản lý dữ liệu trong quá trình truyền thông.
Độ lệch dữ liệu (Data Offset) là một giá trị 32-bit trong header TCP, giúp xác định chiều dài của header và chỉ ra vị trí bắt đầu của dữ liệu trong gói tin.
- Flags (Cờ): Các cờ TCP được sử đụng đề kiểm soát các trạng thái và chức năng đặc biệt trong giao thức
Kích thước cửa sổ là số lượng byte mà người nhận có thể chấp nhận trong một lần truyền tải trước khi cần gửi tín hiệu xác nhận (ACK) trở lại.
Socket là khái niệm quan trọng trong mạng và lập trình ứng dụng, đóng vai trò như một điểm kết nối hai chiều giữa hai máy tính hoặc quá trình trên mạng Nó cho phép trao đổi dữ liệu giữa các máy tính hoặc quá trình thông qua giao thức TCP/IP.
Lap trinh JAVA
Một số tính chất của ngôn ngữ . -s- s5 se se xe xe eeeersererseesree 13 CHƯƠNG 2 Giới thiệu về dự Án . 5-5 se xeEEsEEsersersEreerersrrsrsrerrsrree 19
Chương trình Java được biên dịch thành bytecode, một dạng mã trung gian độc lập với nền tảng, thay vì mã máy cho một hệ điều hành cụ thể Bytecode này không thể thực thi trực tiếp bởi phần cứng, mà cần được chạy trên Java Virtual Machine (JVM), nơi mà JVM chuyển đổi bytecode thành mã máy phù hợp với từng hệ điều hành hoặc phần cứng trong quá trình thực thi.
Quá trình phát triển ứng dụng Java mang lại tính đa nền tảng, cho phép ứng dụng chỉ cần được viết một lần (Write Once, Run Anywhere - WORA) và có thể chạy trên bất kỳ thiết bị nào có cài đặt JVM, bao gồm cả hệ điều hành Windows và macOS.
Linux và các thiết bị nhúng đều có sự độc lập, nhờ vào vai trò của JVM như một lớp trung gian giữa ứng dụng và hệ điều hành, giúp đơn giản hóa các chi tiết phức tạp của hệ thống bên dưới.
JVM không chỉ chuyển đổi bytecode thành mã máy mà còn thực hiện nhiều chức năng quan trọng khác như quản lý bộ nhớ, thu gom rác (Garbage Collection) và tối ưu hóa hiệu suất qua kỹ thuật Just-In-Time Compilation (JIT) Khi chương trình Java được thực thi, JIT biên dịch các phần bytecode thường xuyên sử dụng thành mã máy, từ đó nâng cao hiệu suất ứng dụng so với việc dịch từng lệnh một cách tuần tự.
Cách tiếp cận này không chỉ nâng cao bảo mật nhờ vào việc bytecode không phải là mã máy trực tiếp, mà còn giảm thiểu nguy cơ khai thác lỗ hổng trên phần cứng cụ thể Hơn nữa, Java cung cấp một môi trường tiêu chuẩn hóa cho nhiều nền tảng khác nhau, tạo điều kiện thuận lợi cho việc phát triển ứng dụng.
Khoa Khoa Học Máy Tính 14, dưới sự hướng dẫn của ThS Lê Viết Trương, tạo điều kiện thuận lợi cho việc phát triển các ứng dụng phức tạp, bao gồm ứng dụng doanh nghiệp, ứng dụng di động và web.
Java kết hợp bytecode và JVM, tạo ra một ngôn ngữ lập trình mạnh mẽ, đồng thời hình thành một hệ sinh thái đa năng, đáng tin cậy và thân thiện với nhà phát triển Điều này giúp Java đáp ứng tốt các yêu cầu đa nền tảng trong thế giới công nghệ hiện đại.
Java là ngôn ngữ lập trình hướng đối tượng (OOP) được thiết kế để tổ chức mã nguồn thông qua mô hình hóa các thực thể trong thế giới thực bằng các đối tượng và lớp Phương pháp lập trình hướng đối tượng giúp chia nhỏ vấn đề thành các đơn vị cấu trúc dễ quản lý và phát triển Các khái niệm cơ bản trong Java bao gồm lớp (class), đối tượng (object), kế thừa (inheritance), đa hình (polymorphism), đóng gói (encapsulation) và trừu tượng hóa (abstraction).
Các lớp là bản thiết kế để tạo ra các đối tượng cụ thể, trong khi các đối tượng đại diện cho thực thể với trạng thái và hành vi riêng biệt Tính kế thừa cho phép tái sử dụng mã nguồn bằng cách mở rộng chức năng của các lớp hiện có, trong khi tính đa hình mang lại sự linh hoạt cho phép thực hiện một hành động theo nhiều cách khác nhau Đóng gói bảo vệ dữ liệu và phương thức bên trong một đối tượng khỏi truy cập không mong muốn, tạo ra môi trường lập trình an toàn và kiểm soát Trừu tượng hóa giúp tập trung vào các khía cạnh quan trọng của đối tượng, loại bỏ chi tiết không cần thiết, từ đó đơn giản hóa phát triển và bảo trì hệ thống.
Lập trình hướng đối tượng trong Java nâng cao khả năng tái sử dụng và bảo trì mã nguồn, đồng thời hỗ trợ xây dựng ứng dụng phức tạp với cấu trúc rõ ràng và khả năng mở rộng Phương pháp này rất quan trọng trong phát triển phần mềm hiện đại, từ các ứng dụng đơn giản đến hệ thống quy mô lớn.
- Quan lý bộ nhớ tự động:
Khoa Khoa Hoc May tinh 15 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Java sử dụng garbage collector (GC) để quản lý bộ nhớ tự động, giúp tối ưu hóa việc cấp phát và giải phóng bộ nhớ trong quá trình thực thi chương trình Cơ chế này cho phép lập trình viên không phải lo lắng về việc giải phóng bộ nhớ thủ công như trong các ngôn ngữ lập trình khác, như C hoặc C++, nơi có nguy cơ gặp phải lỗi quản lý bộ nhớ như rò rỉ bộ nhớ hoặc giải phóng bộ nhớ không hợp lệ.
Bộ thu gom rác hoạt động bằng cách tự động xác định và thu hồi các đối tượng không còn được tham chiếu trong chương trình Khi một đối tượng không còn tham chiếu nào từ mã khác, nó được coi là "rác" và bộ nhớ mà nó chiếm dụng sẽ được giải phóng Quá trình này giúp tối ưu hóa việc sử dụng bộ nhớ và ngăn chặn tình trạng quá tải hoặc dừng đột ngột do thiếu bộ nhớ.
Mặc dù garbage collector tự động hóa nhiều công việc, nó vẫn sử dụng các thuật toán phức tạp để xác định thời điểm và cách thức thu gom bộ nhớ, bao gồm thu gom toàn cục (full GC) và thu gom cục bộ (minor GC) Tuy nhiên, lập trình viên có thể tối ưu hóa hiệu suất chương trình bằng cách thiết kế mã hiệu quả, giảm thiểu số lượng đối tượng không cần thiết và hạn chế việc tạo ra các đối tượng tạm thời.
Cơ chế garbage collector trong Java không chỉ giúp giảm tải công việc quản lý bộ nhớ cho lập trình viên mà còn giảm thiểu nguy cơ lỗi phần mềm liên quan đến bộ nhớ Điều này nâng cao độ tin cậy và hiệu quả cho các ứng dụng phát triển bằng Java, góp phần làm cho ngôn ngữ này trở thành một lựa chọn an toàn và ổn định cho lập trình.
Java đi kèm với Java Standard Library, một thư viện phong phú và mạnh mẽ, cung cấp hàng ngàn lớp và phương thức hỗ trợ lập trình viên phát triển ứng dụng hiệu quả Thư viện này được tổ chức thành các gói (packages), mỗi gói chứa các thành phần liên quan đến một lĩnh vực cụ thể, giúp lập trình viên dễ dàng tiếp cận và sử dụng.
Khoa Khoa Hoc May tinh 16 GVHD: ThS Lê Viết Trương
Giới thiệu sơ lƯỢC: . c- << TH KH TH HH TH HH TH TH nhà 19 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KÉ HỆ THÓNG - -5 5c<c- 22
Yêu cầu bài toán: Xây dựng ChatRoom đa người dùng bằng Java theo phương thire TCP/IP
Xây dựng chương trình bên Server:
+ Tạo một TCP Socket và gắn vào một công
+ Xây dựng một chương trình Server đa tuyên (Threaded Server) để cho phép nhiều Clent kết nối tới Server.Mỗi tuyến đảm nhận liên lạc với Client
+ Luôn luôn chờ và lăng nghe yêu cầu kết nối từ phía Client
+ Chấp nhận kết nối và tao ra các Thread(Socket) tương ứng
+ Truyền nhận thông tin qua các luồng nhận/gửi dữ liệu của Socket
+ Khi một user kết nối đến Server thì Server sẽ cap nhat User do vao mang user đã kết nối và gửi tới cac Client dang kết nối
Khi người dùng gửi thông điệp DISCONNECT đến máy chủ, máy chủ sẽ thông báo cho người dùng rằng họ đã thoát và đồng thời xóa người dùng đó khỏi danh sách những người đã kết nối.
+ Thiết kế giao điện cho Server
Xây dựng chương trình bén Client:
+ Tao mét TCP Socket véi dia chi IP va s6 céng mà chương trình Server đang chay
+ Thiết lập kết nối tới Server
+ Trao đổi đữ liệu với Server
Khoa Khoa Hoc May tinh 20 GVHD: ThS Lê Viết Trương
+ Cập nhật các user khác vừa CONNECT/DISCONNECT
+ Gửi nhận thông điệp với tất cả các Client khác trong phòng chat
+ Chức năng xem lại lịch sử cuộc trò chuyện
+ Chức năng up file, download file, gửi emoj1, gửi hình ảnh
+ Thiết kế giao điện hiền thị khung chat phía Client
- Thiết kế mô hình hệ thống:
Chức năng đăng nhập, đăng ký:
Người dùng nhập tài khoản và mật khẩu, sau đó nhân nút đăng nhập/đăng ký
Client gửi đến Server một đối tượng Messenger chứa thông tin tài khoản và mật khâu Đăng nhập: Server kiểm tra thông tin từ cơ sở đữ liệu:
Nếu khớp, cho phép vào hộp thoại chat
Nếu không khớp, hiên thị thông báo lỗi Đăng ký: Server ghi thông tin đăng ký vào cơ sở dữ liệu dé str dung cho lan dang nhập sau
Chức năng gửi tin nhắn:
Người dùng nhập tin nhắn từ bàn phím và nhân Enter hoặc nhắn biểu tượng Gửi
Client gửi đến Server một đối tượng Messenger chứa tên người gửi và nội dung tin nhắn
Server nhân bản đối tượng và chuyến tiếp tin nhắn đến các Client khác
Người dùng nhân biểu tượng tài liệu dé m6 cửa số EieDialog và chọn file
Client gửi đến Server một đối tượng Messenger chứa tên người gửi, tên file, và mảng byte của file
Khoa Khoa Hoc May tinh 21 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Server nhân bản đối tượng và gửi đến các Client khác
Người dùng nhấn vào file đã được chia sẻ trong hộp thoại tin nhắn
Cửa sô FileDialog xuất hiện đề chọn vị trí lưu file
Khi nhắn Save, file được lưu vào vị trí đã chọn
Chức năng hién thi danh sach online:
Khi một người dùng đăng nhập, Server gửi danh sách người dùng cập nhật đến tất cả Client
Khi một người dùng thoát, Server cập nhật lại danh sách và gửi đến các Client Chức năng đắng xuất, thoát chương trình:
Người dùng chọn đăng xuất sẽ được điều hướng về màn hình đăng nhập Nếu chọn thoát, chương trình sẽ đóng hoàn toàn
Khoa Khoa Hoc May tinh 22 GVHD: ThS Lê Viết Trương
CHUONG 3: PHAN TICH VA THIET KE HE THONG
Khảo sát và đặc tả yêu cầu
- Màn hình Server với đầy đủ thông tin
- Màn hình Client đủ thông tin cơ bản
- Cho phép quản lý danh sách server
- Cho phép str dung emoji đơn giản
- Cho phép chat với nhiều user
Giao diện người đÙng - o4 c4 s0” Y cà n0 ng 22
- Dung lượng file không quá lớn
- Thanh menu thật đơn giản
- Phải có thông tin liên hệ
- Font chữ đơn giản, đễ nhìn, màu sac hai hoa
- An toản và bảo mật đữ liệu.
Yêu cầu hệ thống c°-s-s©sseEExEEkEEEkEEEEEeeeerxereereererrsre 22 ân n.n ôÔ 22 2.4 S©GTVCF HQ cọ họ ọọọ nh TH Họ 9 0 9 09 0 8 089 00580 23 ',ˆ VÂN ôð ae
- Hệ thong hoạt động nhanh, chính xác
- Co thé nang cap, update, bảo tri dé dang
- Tinh bao mat va d6 an toan cao
Phõn tớch chương trỡnh Chương trỡnh truyền ủle sử dụng socket qua mạng LAN được chia lam 2 phan: Server va Client
Hình 10: Minh hoa việc truyền dữ liêu bằng giao thức TCP
CHUONG 1: SO LUOC VE LAP TRINH MANG
Phần mềm sẽ tự động lấy địa chỉ IP của card mạng tại Server và hiển thị nó trong ô textbox của phần địa chỉ IP server Điều này giúp người dùng nắm rõ địa chỉ IP mà server đang sử dụng để thực hiện kết nối.
Số hiệu Port là thông tin mà người dùng cần nhập vào ô textbox Port Thông tin này sẽ được Server sử dụng để thiết lập kết nối và truyền tải file Port đóng vai trò là điểm cuối trong giao tiếp mạng, giúp xác định ứng dụng hoặc dịch vụ mà dữ liệu được gửi đến.
Kích hoạt server bằng cách nhập đầy đủ địa chỉ IP và số hiệu Port, sau đó nhấn nút Start Khi server được kích hoạt, nó sẽ lắng nghe các kết nối từ client và chuẩn bị cho việc truyền file.
Người dùng có thể chọn file cần truyền bằng cách nhấn vào nút Browse, sau đó cửa sổ chọn file sẽ mở ra để lựa chọn file từ hệ thống của mình Đường dẫn của file được chọn sẽ hiển thị trong textbox bên cạnh nút Browse Sau khi hoàn tất việc chọn file, người dùng nhấn vào nút Send để bắt đầu quá trình gửi file Phần mềm sẽ gửi file đến địa chỉ IP và port đã được cấu hình trước đó Quá trình gửi diễn ra qua kết nối mạng, và khi file được gửi thành công, server sẽ nhận được dữ liệu và lưu trữ.
Trạng thái kết nối là phần quan trọng trong giao diện, cho biết quá trình truyền tải file có thành công hay không Nếu xảy ra lỗi hoặc sự cố trong quá trình truyền, trạng thái sẽ hiển thị thông báo để người dùng có thể nhận biết và xử lý kịp thời.
Khoa Khoa Hoc May tinh 24 GVHD: ThS Lê Viết Trương
Địa chỉ IP của Server: Người dùng cần nhập địa chỉ IP của Server vào 6 ô textbox Địa chỉ IP này phải khớp với địa chỉ IP mà Server sử dụng để thiết lập kết nối mạng thành công giữa Client và Server.
Người dùng cần nhập số hiệu Port vào ô textbox Port, đảm bảo rằng số hiệu này khớp với cấu hình Port của server để thiết lập kết nối một cách chính xác.
Kết nối đến Server: Sau khi nhập chính xác địa chỉ IP và số hiệu Port, người dùng nhấn nút Connect để thiết lập kết nối với Server Khi nhấn Connect, Client sẽ nỗ lực kết nối với Server và nếu kết nối thành công, Client sẽ chuyển sang trạng thái kết nối, cho phép bắt đầu quá trình truyền file.
Khi kết nối thành công, file từ Server sẽ được truyền đến Client, với tên file hiển thị trong 6 textbox FileName trên giao diện Client Tốc độ truyền file phụ thuộc vào tốc độ mạng và kích thước của file; file lớn sẽ mất nhiều thời gian để truyền tải.
Sau khi file được truyền thành công, Client sẽ nhận file và có thể nhấn vào nút Lưu để chọn vị trí lưu trên máy Người dùng có quyền lưu file tại bất kỳ thư mục nào trong hệ thống của mình.
Để gửi file tiếp theo sau khi hoàn thành một lần gửi, người dùng cần nhấn nút Stop ở cả hai phía Server và Client để kết thúc phiên truyền file hiện tại Sau đó, quá trình gửi file mới sẽ bắt đầu lại từ đầu, bao gồm việc nhập địa chỉ IP và Port, thiết lập kết nối, và tiến hành truyền file mới.
Chức năng Opfions: Phần mềm cũng có một mục Options chứa các chức năng hỗ trợ người dùng:
Help: Cung cấp hướng dẫn sử dụng phần mềm đề người dùng có thể đễ dàng nắm bắt các bước thực hiện
Khoa Khoa Hoc May tinh 25 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
About: Hiễn thị thông tin về đội ngũ thiết kế phần mềm, bao gồm ngày xuất bản và các thông tin liên quan khác
Exit: Cho phép người dùng thoát phần mềm sau khi hoàn tất công việc
2.4.3 Phân tích thiết kế hệ thống
- Biểu đồ Use case người dùng hệ thống Đăng nhập Cung cập công Port
Server £ >‡Ð ca J0) 000 liễn thị danh sách online`
Hiễn thị danh sách online kết nói Đăng xuất, thoát chương trình
Tình 11: Sơ đồ USE-CASE người dùng hệ thống
Khoa Khoa Hoc May tinh 26 GVHD: ThS Lê Viết Trương
Chire nang M6 ta Tac nhan
Cho phép người dùng đăng nhập hoặc tạo tài khoản mới đề sử dụng ứng dụng chat
Gửi tin nhăn Cho phép người dùng gửi và nhận tin nhắn dang van ban giữa các người dùng trong hệ thống
Gửi hình ảnh Cho phép người dùng gửi và nhận hỉnh ảnh trong các cuộc trò chuyện
Gửi file Người dùng có thê gửi các tập tin (file) như tài liệu, hình ảnh, v.v giữa các người dùng khác
Hién thi danh sach online
Người dùng có the xem danh sách các người dùng hiện đang trực tuyến trong hệ thống
Dang xuat, thoat chương trình
Người dùng có thê đăng xuất khỏi hệ thông hoặc đóng ứng dụng một cách an toản User
Bang 1:Bang phdn tich chwe nang USE-CASE ngwoi dung
Khoa Khoa Hoc May tinh 27 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Mô tả chỉ tiết các chức năng:
Người dùng cần nhập thông tin như tên tài khoản và mật khâu để đăng nhập hoặc đăng ký tài khoản mới
Khi đăng ký, hệ thống sẽ lưu trữ thông tin người dùng và sau đó cho phép đăng nhập vào hệ thông
Người dùng có thê gửi tin nhắn đạng văn bản cho một hoặc nhiều người dùng khác trong hệ thống
Tin nhắn được truyền qua giao thức TCP/IP và hiển thị trong cửa số chat của người dùng
Người dùng có thê chọn và gửi hình ảnh qua giao điện ứng dụng
Hình ảnh sẽ được nén (nêu cần) trước khi gửi đề tôi ưu băng thông và sau đó được giải nén khi nhận
Chức năng này cho phép gửi các loại file khác nhau giữa các người dùng, ví dụ như tài liệu PDE, ảnh hoặc các tệp khác
Tệp sẽ được upload từ máy người dùng và gửi qua server trước khi đến người nhận
- Hiển thị đanh sách online:
Hiển thị danh sách các người dùng hiện đang trực tuyến trong hệ thông
Thông tin này được cập nhật theo thời gian thực dé người dùng có thé xem ai dang online
Khoa Khoa Hoc May tinh 28 GVHD: ThS Lê Viết Trương
- Dang xuat, thoat chuong trinh:
Người dùng có thể đăng xuất khỏi tài khoản của mình, giải phóng kết nối và tài nguyên trên server
Thoát chương trình sẽ đóng toàn bộ kết nối và đóng ứng dụng
Chức năng Mo ta Tac Ghi nhan chu
Cung cấp cổng cho máy chủ cho phép quản lý và thay đổi thông tin đăng nhập vào server Khởi động máy chủ giúp server bắt đầu hoạt động, đồng thời quản lý các client từ phía người dùng.
Hiền thị danh sách cho phép server theo dõi trạng thái online, kết nối các người dùng đang hoạt động và thoát khỏi chương trình theo thời gian thực Ngoài ra, hệ thống cũng hiển thị danh sách những người đang đăng nhập và tham gia trò chuyện.
Dùng máy chủ Cho phép Server dừng hoạt Server động và thoát tất cả các user ra khỏi cuộc trò chuyện
Bảng 2: Bảng phân tích chức năng Server Hgười ding
Mô tả chỉ tiết các chức năng:
Cho phép Server quản lý và thay đôi công đề login vào server
Khoa Khoa Hoc May tinh 29 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Hỗ trợ việc mở hoặc đóng các công đề bảo mật, chỉ cho phép truy cập từ các kết nối dang tin cậy
Cho phép Server bắt đầu quá trình khởi chạy đề quản lý các kết nối từ phía User
Tạo môi trường sẵn sàng cho các Client có thể đăng nhập và sử dụng các dịch vụ chat và gửi file
- Hiền thị danh sách Online:
Cho phép Server hiển thị danh sách các user đang hoạt động và theo dõi trạng thái đăng nhập và đăng xuất của họ
Hỗ trợ quản lý và giám sát các kết nói đề duy trì tính ồn định cho hệ thống
Cho phép Server tắt hoạt động và ngắt kết nối với tất cả User, đảm bảo rằng không còn kết nối khi Server dừng
Thông báo cho tất cả User rằng Server đang dừng và yêu câu họ thoát ra khỏi cuộc trò chuyện một cách an toàn
Khoa Khoa Hoc May tinh 30 GVHD: ThS Lê Viết Trương
Người dùng Hệ thống eo
Nhập tài khoản và mật khẩu ; =
PS Hién thị thông báo lỗi Đúng Đăng nhập thành công
Tình 12: Biểu đồ hoại động đăng nhập
Mô tả sơ đồ hoạt động đăng nhập:
Quá trình đăng nhập bắt đầu khi người dùng khởi động ứng dụng
- Người dùng nhập tài khoản và mật khâu:
Người dùng nhập thông tin tài khoản và mật khẩu vào các ô tương ứng trên giao diện đăng
Sau đó, người dùng nhắn nút "Đăng nhập" dé gửi thông tin này đến hé thong
- Hệ thống kiểm tra thông tin:
Hệ thống sẽ kiêm tra thông tin tài khoản và mật khâu mà người dùng nhập có đúng hay không
- Rẽ nhánh: Kiểm tra thông tin đúng hay sai:
Khoa Khoa Hoc May tinh 31 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
Nếu sai: Hệ thông sẽ thực hiện một trong hai hành động:
Hệ thống sẽ hiển thị thông báo lỗi cho người dùng khi thông tin tài khoản hoặc mật khẩu không chính xác, yêu cầu người dùng nhập lại thông tin.
Nếu đúng: Hệ thống sẽ cho phép người dùng đăng nhập thành công
Khi hệ thông xác thực thông tin tài khoản và mật khẩu là chính xác, người dùng sẽ được chuyên đến giao diện chat của ứng dụng
Quá trình đăng nhập hoàn tất khi người dùng truy cập vào giao diện chat, nơi họ có thể bắt đầu sử dụng các tính năng của ứng dụng, bao gồm gửi tin nhắn và xem danh sách người dùng trực tuyến.
Sơ đồ tuần tự sd SequenceDiagram1 i “net
Khoa Khoa Hoc May tinh 32 GVHD: ThS Lê Viết Trương
- OpenClient Interface (Mở giao diện Client): Chent khởi chạy ứng dụng và truy cập vào giao diện
- Login (Đăng nhập): Người dùng nhập thông tin cân thiết và gửi yêu cầu đăng nhập đến Server thông qua giao dién Client
- Request to Access (Yêu cầu kết nói): Giao diện Client gửi yêu cầu kết nối tới Server đề xác thực thông tin người dùng
- Access to Connected (Chấp nhận truy cập): Server kiêm tra thông tin đăng nhập, nếu hợp lệ sẽ chấp nhận và cho phép truy cập
- Access as Name (Truy cập với tên người dùng): Sau khi đăng nhập thành công, Client truy cập với tên người dùng của mình
- Write Message (Viết tin nhắn): Người dùng soạn tin nhắn trén giao dién Client
- Send the Message (Gửi tin nhắn): Giao diện Client gửi tin nhắn tới Server để xử ly
- Redirect the Message (Chuyén tiép tin nhắn): Server chuyên tiếp tin nhắn tới các Client đang kết nồi
- See the Chat (Xem trò chuyện): Client nhận phản hồi từ Server và xem nội dung trò chuyện trên giao điện
Khoa Khoa Hoc May tinh 33 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
CHUONG 3: XAY DUNG UNG DUNG
3.1 Giao diện chính của ứng dụng
Khoa Khoa Hoc May tinh 34 GVHD: ThS Lê Viết Trương
Mức độ hoàn thiện: Hệ thống đã đáp ứng khoảng 90% yêu cầu so với đề cương ban đầu
- _ Các chức năng đã hoàn thiện:
Server có thể theo dõi hoạt động của người dùng
Client đăng nhập và truy cập tài khoản thành công
Hiển thị danh sách người đùng đang Online
Chức năng gửi file và hình ánh hoạt động ôn định, tốc độ nhanh
Giao điện chưa được thiết kế đẹp mắt, chưa thân thiện với người dùng Một số lỗi nhỏ vẫn xảy ra trong quá trình sử đụng
Hệ thống dễ bị giỏn đoạn khi gửi fủle cú dung lượng lớn
Chưa hỗ trợ thêm các biều tượng cảm xúc (icon) trong quá trình trò chuyện
Rà soát và xử lý các trường hợp lỗi tiềm an
Cải thiện giao diện đề tạo trải nghiệm tốt hơn cho người dùng
Tối ưu hóa quá trình truyền file lớn đề tránh tình trạng gián đoạn
Bồ sung thêm các tính năng như sử dụng biểu tượng cảm xúc và tùy chỉnh nội dung tin nhắn
Khoa Khoa Hoc May tinh 35 GVHD: ThS Lê Viết Trương
CHUONG 1: SO LUOC VE LAP TRINH MANG
- Xây dựng thêm các tính năng nâng cao để đáp ứng day đủ nhu cầu của người dùng
- Tan dung các công cụ hồ trợ mạnh mẽ đề cải thiện tôc độ xử lý và hiệu suât hệ thống
+ Cập nhật theo xu hướng:
- Nghiên cứu nhu cầu và xu hướng sử dụng của người dùng để có thê điều chỉnh và bố sung các tính năng phù hợp
- _ Cập nhật thường xuyên nhằm đảm bảo hệ thống luôn phù hợp với thực tế và nâng cao giá trị sử dụng
Khoa Khoa Hoc May tinh 36 GVHD: ThS Lê Viết Trương