LOI NOI ĐẦU Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của cá
Sơ lược về lập trình mạng .- c1 22012211 212121 111111112112 1111111101111 110112 1118 xxx 1
Một số mô hình mạng .- 5 1 SE 11181121111 112111121 1110.1221011 re kg 1
Mô hình OSI (Open Systems Interconnection) hay còn gọi là "mô hình tham chiếu 7 tầng OSI" giúp người sử dụng hình dung rõ hơn về cơ chế truyền tin giữa các máy tính Mô hình này bao gồm 7 tầng, mỗi tầng sử dụng chức năng của tầng dưới và cho phép tầng trên sử dụng các chức năng của mình Thực chất, mô hình OSI phân chia các hoạt động phức tạp của mạng thành các nhiệm vụ đơn giản hơn, giúp dễ dàng hơn trong việc hiểu và quản lý.
- Chức năng của từng tầng:
Tầng 1, hay Tầng vật lý, đóng vai trò quan trọng trong việc điều khiển quá trình truyền tải các bit qua đường truyền vật lý Tầng này xác định các tín hiệu điện, trạng thái của đường truyền và phương pháp mã hóa dữ liệu.
Tầng 2, hay Tầng liên kết dữ liệu (Data-Link Layer), đảm bảo việc truyền tải khung dữ liệu (Frame) giữa hai máy tính có kết nối vật lý trực tiếp Tầng này cũng thiết lập cơ chế phát hiện và xử lý lỗi dữ liệu nhận, góp phần nâng cao độ tin cậy trong quá trình truyền thông.
+ Tang 3: Tang mang (Network Layer) dam nhiệm việc truyền các gói tin (packet) giữa hai máy tính bất kỳ trong mạng máy tính
Tang 4, hay còn gọi là tầng vận chuyển (Transport Layer), có vai trò quan trọng trong việc phân nhỏ các gói tin lớn khi gửi và tập hợp chúng khi nhận Quá trình này đảm bảo tính toàn vẹn của dữ liệu, ngăn chặn việc mất mát, lặp lại và đảm bảo thứ tự chính xác của các gói tin.
Tầng 5 của mô hình TCP/IP, hay còn gọi là tầng giao dịch (Session), đóng vai trò quan trọng trong việc quản lý phiên làm việc giữa các người sử dụng Tầng này cung cấp cơ chế nhận diện tên và đảm bảo chức năng bảo mật thông tin qua mạng máy tính, giúp duy trì kết nối an toàn và hiệu quả.
Tầng 6, hay còn gọi là Tầng Trình Bày (Presentation Layer), đảm bảo rằng các máy tính với định dạng dữ liệu khác nhau có thể trao đổi thông tin một cách hiệu quả Để thực hiện điều này, các máy tính thường thống nhất về một định dạng dữ liệu trung gian Trong quá trình truyền dữ liệu, nhiệm vụ của tầng trình bày ở máy gửi là chuyển đổi dữ liệu từ định dạng riêng sang định dạng chung, trong khi tầng trình bày ở máy nhận thực hiện quá trình ngược lại.
The Application Layer, also known as Layer 7, provides access to network services through applications such as web browsers and mail user agents It also includes programs that deliver network services, including web servers, FTP servers, and mail servers.
Mô hình OSI chủ yếu được phát triển cho mục đích học tập và nghiên cứu, trong khi mô hình TCP/IP lại được áp dụng rộng rãi trong thực tế Hệ thống máy tính mà chúng ta sử dụng hàng ngày hoạt động dựa trên các giao thức TCP/IPv4 hoặc TCP/IPv6 Mô hình TCP/IP còn được biết đến với tên gọi khác là mô hình DoD.
Application Data POP, DNS, HTTP, FTP, SMTP, TELNET, SSH
Tầng truy cập (Network Access Layer) có thể được xem là một tầng riêng biệt hoặc được tách thành hai tầng: tầng vật lý và tầng liên kết dữ liệu như trong mô hình OSI Tầng này đóng vai trò quan trọng trong việc truyền gói tin từ tầng mạng đến các Host trong mạng Các thiết bị vật lý như switch, cáp mạng và card mạng HBA (Host Bus Adapter) là những thành phần chính của quá trình truy cập mạng.
Tang 2, hay còn gọi là Tang mang (Internet Layer) trong mô hình TCP/IP, đóng vai trò quan trọng trong việc đảm bảo các gói tin được chuyển qua các mạng và đến đúng đích.
Tầng 3, hay còn gọi là Tầng vận chuyển (Transport Layer), có nhiệm vụ phân nhỏ các gói tin lớn khi gửi và tập hợp lại khi nhận, đồng thời đảm bảo tính toàn vẹn của dữ liệu, bao gồm việc không có lỗi, không mất mát và đúng thứ tự Chức năng của tầng vận chuyển trong giao thức TCP/IP tương tự như trong mô hình OSI.
Tầng 4, hay Tầng ứng dụng (Application Layer), là nơi các chương trình mạng như Trình duyệt Web và Đại lý Người dùng Thư điện tử hoạt động để liên lạc giữa các nút mạng Trong mô hình TCP/IP, không có tầng trung gian nào giữa các tầng ứng dụng và tầng vận chuyển, do đó, Tầng ứng dụng của TCP/IP bao gồm các giao thức tương tự như tầng trình diễn và giao dịch trong mô hình OSI.
1.1.3 Một số mô hình ứng dụng mạng
Mô hình mạng máy tính Client/Server bao gồm hai thành phần chính: máy khách (client) và máy chủ (server) Trong mô hình này, máy chủ lưu trữ tài nguyên, cài đặt các chương trình dịch vụ và xử lý yêu cầu từ máy khách Máy khách, bao gồm máy tính và các thiết bị điện tử khác, có nhiệm vụ gửi yêu cầu đến máy chủ.
Hình 3 — Mô hình Cient/Server
- Ưu nhược điểm của Client server:
Có khả năng chống quá tải mạng Đảm bảo toàn vẹn dữ liệu khi có sự cố xảy ra
Dễ dàng mở rộng hệ thông mạng
Chi can chung định dạng giao tiếp mà không cần chung nền tảng là có thể hoạt động được
Cho phép tích hợp các kỹ thuật hiện đại như GIS, mô hình thiết kế hướng đối tượng,
Có thể truy cập dữ liệu từ xa, thực hiện các thao tác gửi, nhận file hay tìm kiếm thông tin đơn giản
Cần bảo trì, bảo dưỡng server thường xuyên
Khả năng bảo mật thông tin mạng là một hạn chế đáng lưu ý của mô hình Client/Server Nguyên lý hoạt động của Client/Server yêu cầu trao đổi dữ liệu giữa server và client ở hai khu vực địa lý khác nhau, dẫn đến nguy cơ thông tin mạng bị lộ trong quá trình này.
- Nguyên lý hoạt déng cua Client/Server:
Client là thiết bị gửi yêu cầu đến server, đóng vai trò quan trọng trong việc giao tiếp giữa người dùng, server và môi trường bên ngoài Nó tiếp nhận yêu cầu từ người dùng và tạo ra các chuỗi truy vấn để gửi đến server Sau khi nhận được kết quả từ server, client sẽ tổ chức và trình bày các kết quả đó cho người dùng.
Một số giao thức mạng .- c2 c1 121122111121 1121111 1118111211111 1 18111011111 kk TH ke 7
Giao thức mạng là bộ quy tắc và tiêu chuẩn mà các hệ thống phải tuân theo để đảm bảo quá trình giao tiếp mạng diễn ra suôn sẻ Những quy tắc này không chỉ giúp thực hiện các hành động và chính sách mà còn giải quyết vấn đề một cách hiệu quả, từ đầu đến cuối Nhờ vào các giao thức này, việc truyền tải dữ liệu được thực hiện kịp thời và chính xác.
Giao thức mạng là yếu tố quan trọng trong việc kết nối máy tính, router, máy chủ và các thiết bị mạng khác để chúng có thể giao tiếp hiệu quả Để đảm bảo quá trình truyền dữ liệu diễn ra suôn sẻ, các giao thức này cần được xác nhận và cài đặt đúng cách bởi cả người gửi và người nhận.
TCP (Transmission Control Protocol) là một giao thức mạng quan trọng cho việc truyền dữ liệu qua mạng Giao thức này quy định các quy tắc và trình tự kiểm soát việc truyền dữ liệu, giúp mọi người trên toàn thế giới, bất kể vị trí địa lý hay ứng dụng, phần mềm đang sử dụng, có thể thao tác theo cùng một phương thức.
TCP kết hợp với IP để tạo thành cặp giao thức TCP/IP Trong đó, IP đảm nhiệm việc gán địa chỉ và chuyển tiếp các gói tin từ nguồn đến đích, trong khi TCP đảm bảo độ tin cậy của quá trình truyền tải.
Data not acknowledged In window, can be sent a— _—_—_———_s 24
Data already acknowledged Out of window can't send
Hình 5 — Nguyên lý hoạt động của TCP
TCP đánh số các gói tin và đảm bảo dữ liệu đến đích trong thời gian chờ xác định, thường là vài trăm mili giây Mỗi gói tin nhận được sẽ được thông báo cho thiết bị gửi qua một gói xác nhận Nếu sau thời gian chờ không nhận được xác nhận, nguồn gửi sẽ gửi lại bản sao của gói tin bị mất hoặc bị hoãn Các gói tin không theo trình tự sẽ không được xác nhận, giúp đảm bảo tất cả gói dữ liệu được tập hợp theo thứ tự mà không có sơ hở trong khoảng thời gian chờ chấp nhận được.
TCP không có hệ thống địa chỉ phức tạp như IP, mà chỉ sử dụng các số port để xác định nơi nhận và truyền gói tin Các port này được cung cấp bởi thiết bị mà TCP đang chạy, ví dụ như port 80 cho trình duyệt web và port 25 cho email Số port thường đi kèm với địa chỉ IP để chỉ dịch vụ, ví dụ: 192.168.66.5:80.
Giao thức TCP/IP là nền tảng kết nối thông tin trên Internet, cho phép người dùng thực hiện các hoạt động như gửi email, truyền file và phân phối nội dung web Nó cũng hỗ trợ truy cập máy chủ từ xa và thay đổi trạng thái thông tin trong môi trường Internet Nhờ vào TCP/IP, người dùng có thể điều chỉnh cách biểu thị thông tin qua các giao thức cơ bản ở mỗi lớp, giúp nâng cao độ chính xác và hiệu quả trong việc truyền thông tin.
UDP (Giao thức Datagram Người dùng) là một trong những giao thức chính trong bộ giao thức TCP/IP Khi sử dụng UDP, các chương trình trên mạng máy tính có khả năng gửi những dữ liệu ngắn, được gọi là datagram.
UDP khác với TCP ở chỗ không cung cấp độ tin cậy và thứ tự truyền nhận, dẫn đến việc các gói dữ liệu có thể đến không đúng thứ tự hoặc bị mất mà không có thông báo Tuy nhiên, UDP nhanh và hiệu quả hơn cho các mục tiêu yêu cầu kích thước nhỏ và thời gian khắt khe Nhờ vào bản chất không trạng thái, UDP rất hữu ích cho việc xử lý các truy vấn nhỏ với số lượng lớn người yêu cầu.
Những ứng dung pho biến str dung UDP nhu DNS (Domain Name System), tng dụng streaming media, Voice over IP, Trivial File Transfer Protocol (TFTP), va game tryc tuyén
SMTP là giao thức tiêu chuẩn dùng để gửi email, thiết lập kết nối giữa mail client và mail server Nó cũng tạo ra kênh liên lạc giữa mail server gửi và mail server nhận Email được tải từ mail client lên mail server, sau đó từ mail server này sẽ được gửi đến mail server nhận.
POP3 (Post Office Protocol version 3) is utilized to connect to an email server and download emails to personal computers using email applications such as Outlook, Thunderbird, Windows Mail, and Mac Mail.
IMAP (Internet Message Access Protocol) là giao thức cho phép kéo email về client, nhưng khác với POP3, IMAP chỉ tải về tiêu đề email trong khi nội dung vẫn lưu trữ trên server Giao thức này hỗ trợ truyền thông hai chiều, cho phép mọi thay đổi trên mail client được cập nhật lên server IMAP đã trở nên phổ biến nhờ sự khuyến nghị của Gmail, nhà cung cấp email lớn nhất thế giới, thay thế cho POP3.
Hình 6— Cấu trúc cơ bản của I ứng dụng web
HTTP, viết tắt của Hyper Text Transfer Protocol, là giao thức truyền tải siêu văn bản được sử dụng trên www Giao thức này cho phép tìm nạp các tài nguyên, chẳng hạn như tài liệu HTML.
HTTP là nền tảng cho mọi trao đổi dữ liệu trên Web, hoạt động như một giao thức giữa client, thường là trình duyệt hoặc thiết bị khác, và server, thường là máy tính đám mây Nội dung hoàn chỉnh được tạo ra từ việc tìm nạp các tài liệu con khác nhau, bao gồm văn bản, mô tả bố cục, hình ảnh, video và script.
’ username: abc é | om | username: !|@#% password: 123 " L J | password: )(*8AA
HTTPS (Hypertext Transfer Protocol Secure) là phiên bản an toàn của giao thức HTTP, được tích hợp với Chứng chỉ bảo mật SSL để mã hóa thông điệp giao tiếp, từ đó nâng cao tính bảo mật.
Sơ lược về socket s scnTn 2121515151125 TH EH TH HH HH Hee ll
Chức năng của socket - L1 0111212121111 11122 1811151511111 n1 cha ll
Socket là giao thức kết nối giữa client và server thông qua TCP/IP và UDP, cho phép truyền và nhận dữ liệu qua Internet Để hoạt động, socket cần thông tin về địa chỉ IP và số hiệu cổng của hai ứng dụng cần trao đổi dữ liệu Hai ứng dụng này có thể nằm trên cùng một máy hoặc trên hai máy khác nhau.
+ Trong trường hợp 2 ứng dụng cùng nằm trên một máy, số hiệu cổng không được trùng nhau
Stream Socket, hay còn gọi là socket hướng kết nối, là loại socket hoạt động dựa trên giao thức TCP (Transmission Control Protocol) Loại socket này chỉ hoạt động khi server và client đã kết nối thành công với nhau.
Uu diém cua Stream Socket:
+ Dữ liệu truyền đi được đảm bảo truyền đến đúng nơi nhận, đúng thứ tự với thời gian nhanh chóng
+ Mỗi thông điệp gửi đi đều có xác nhận trả về để thông báo cho người dùng thông tin về quá trình truyền tải
Nhược điểm của Stream Socket:
+ Giữa máy chủ và máy nhận chỉ có I IP, nên khi kết nối, l máy phải chờ máy còn lại chấp nhận kết nối
1.3 Tổng quan về ngôn ngữ lập trình Java é, Java soo
Hình 8-— Logo của ngôn ngữ lập trình Java
Java là ngôn ngữ lập trình phổ biến, được sử dụng rộng rãi để phát triển ứng dụng web trong hơn 20 năm qua Hiện có hàng triệu ứng dụng Java đang hoạt động, nhờ vào tính đa nền tảng và hướng đối tượng của nó Java không chỉ là một ngôn ngữ lập trình nhanh chóng, bảo mật và đáng tin cậy, mà còn phù hợp cho việc phát triển ứng dụng di động, phần mềm doanh nghiệp, ứng dụng dữ liệu lớn và công nghệ phía máy chủ.
Java là một ngôn ngữ lập trình miễn phí và linh hoạt, được sử dụng rộng rãi để phát triển cả phần mềm cục bộ lẫn phần mềm phân tán Một số ứng dụng phổ biến của Java bao gồm phát triển ứng dụng web, ứng dụng di động, và hệ thống nhúng.
Java là ngôn ngữ lập trình quan trọng trong phát triển trò chơi điện tử, bao gồm cả trò chơi máy tính và di động nổi tiếng Nhiều trò chơi hiện đại, tích hợp công nghệ tiên tiến như máy học và thực tế ảo, cũng được xây dựng dựa trên công nghệ Java.
Điện toán đám mây: Java được biết đến với đặc điểm WORA (Viết một lần, chạy ở mọi nơi), làm cho nó trở thành ngôn ngữ lý tưởng cho các ứng dụng phi tập trung trên nền tảng đám mây Nhiều nhà cung cấp dịch vụ đám mây lựa chọn Java để triển khai các chương trình trên nhiều hệ điều hành khác nhau.
Java là ngôn ngữ lập trình lý tưởng cho các công cụ xử lý dữ liệu lớn, cho phép làm việc với các tập dữ liệu phức tạp và xử lý lượng dữ liệu thời gian thực khổng lồ.
Java là một ngôn ngữ lập trình mạnh mẽ với thư viện máy học phong phú, rất phù hợp cho việc phát triển ứng dụng trí tuệ nhân tạo Sự ổn định và tốc độ của Java làm cho nó trở thành lựa chọn lý tưởng cho các lĩnh vực như xử lý ngôn ngữ tự nhiên và deep learning.
Internet vạn vật: Java được sử dụng để lập trình cảm biến và phần cứng trong thiết bị biên, cho phép kết nối độc lập với Internet.
Vi sao Java lại trở thành một lựa chọn pho biến của các nhà phát triển phân mềm hiện đại? + Tài nguyên học tập chất lượng cao
+ Các chức năng và thư viện sẵn có
+ Sự hỗ trợ tích cực của cộng đồng
+ Công cụ phát triển chất lượng cao
+ Độc lập với nên tảng
Chuong2 Phân tích thiết kế hệ thống
2.1 Mô hình tương tác giữa Client và Server ec socket() socket() c Ỷ bind() y Ỷ listen() connect() write() y close() close()
Hình 9 — M6 hinh Client/Server sir dung TCP socket
Mô hình Client-Server sử dụng Socket ở chế độ có nối kết (TCP), phân thành 4 giai đoạn như SaU:
Giai đoạn 1: Server tạo Socket để gán số hiệu công và lắng nghe yêu cầu kết nối từ Client Đầu tiên, server yêu cầu tạo một socket để có thể sử dụng các dịch vụ của tầng vận chuyển Sau đó, server gán số hiệu công (port) cho socket bằng lệnh bind() và bắt đầu lắng nghe các yêu cầu kết nối từ các client thông qua lệnh listen() Giai đoạn 2: Client cũng tạo một Socket và yêu cầu thiết lập kết nối với Server Client yêu cầu tạo một socket để sử dụng các dịch vụ của tầng vận chuyển, thường hệ thống sẽ tự động gán một số hiệu công còn rảnh cho socket của Client Khi Client gửi yêu cầu kết nối đến server với địa chỉ IP và port xác định bằng lệnh connect(), server sẽ chấp nhận kết nối của client thông qua lệnh accept(), tạo ra một kênh giao tiếp ảo để Client và server có thể trao đổi thông tin.
+ Giai đoạn 3: Trao đối thông tin giữa Client và Server
Sau khi chấp nhận yêu cầu kết nối, server sẽ thực hiện lệnh read() và chờ đợi thông điệp yêu cầu từ client Sau khi nhận được yêu cầu, server sẽ phân tích và thực thi, sau đó gửi kết quả trở lại client bằng lệnh write().
Sau khi gởi yêu cầu bằng lệnh write(), client chờ nhận thông điệp kết quả (ReplyMessage) từ server bằng lệnh read()
+ Giai đoạn 4: Kết thúc phiên làm việc
Các câu lệnh read(Q), write() có thể được thưc hiện nhiều lần (ký hiệu bằng hình ellipse)
Kênh ảo sẽ bị xóa khi Server hoặc Client đóng socket bằng lệnh close()
2.2.1 Danh sách các tác nhân
I Admin - Người quản ly là người có thê truy cập vào server eae - Người dùng ở đây là người fruy cập vào ứng
2 Người dùng dụng phia client
Bang 1 — Liệt kê các tác nhân
2.2.2 Yêu cầu phi chức năng
- Hệ thống phải đáp ứng được những nhu cầu sau:
+ Hạn chế tối thiểu việc xử lý thủ công
+ Cho phép cập nhật thông tin kịp thời và nhanh chóng
+ Các yêu cầu được cập nhật và xử lý trong vòng 5 giây
+ Hiền thị kết quả tìm kiếm trong vòng 5 giây
- Hệ thống phải đảm bảo tính bảo mật và an toàn thông tin cho người dùng hệ thống
STT Chức năng Mô tả
1L | Hiển thị Splash nên truy cập vào ứng dụng, màn hình splash xuât
2 | Dang nhap Đăng nhập vao server bang cach nhap IP, port va username
3 | Ghinho server Sau khi đã đăng nhập vào server, có thê thực hiện lưu server cho lần đăng nhập tiếp theo
Hiện thị danh sách người dùng
4 đang trực tuyến Liệt kê danh sách đang trực tuyển trong server
Chọn người dùng đang trực tuyên đề yêu câu tạo box chat
> | Tao box chat Người dùng được yêu cầu có quyền đồng ý hoặc từ chôi trò chuyện
6 Ì Gửi 6n nhắn văn bản Trong box chat, người dùng có thê gửi tin nhắn văn bản cho nhau
Trong box chat, người dùng có thể gửi tệp cho
Người nhận có thê lưu tệp về máy
8 | Gửi emoji Trong box chat, người dùng có thê gửi một sô emoji don giản cho nhau
9 | Kết thúc cuộc trò chuyện Người dùng có thê thoát khỏi box chat đê dùng cuộc trò chuyện
10 | Đăng xuất Người dùng có thê thoát khỏi ứng dụng
Bảng 2 — Yêu câu chức năng phía Clhient
1 Hién thi Splash Khi truy cập vào server ứng dụng, màn hình splash xuất hiện
2 | Khoi tao server Người quản lý có thê khởi tạo server, bat dau lăng nghe các client truy cập vào ứng dụng
3 | Dùng server Nguoi quan ly co thé dimg server, két thuc lang nghe và không tiếp nhận truy cập
Thông kê sô lượng người dùng Hiến thị sô lượng người dùng đang truy cập vào ® | hệ thống hệ thống
5 Hiến thị danh sách người dùng | Liệt kê danh sách các tài khoản đang truy cập hệ thông băng cách hiện thị username
6_ | Đăng xuât Người quản lý có thê thoát khỏi ứng dụng
Bảng 3 — Yêu cầu chức năng phía Server
2.3 Biểu đồ ca sử dụng
2.3.1 Biểu đồ ca sử dụng phía Client
Client X _ ién thi DS người dùnà, ““ˆ trực tuyên Đăng xuất
OS aK Đăng nhập ) ơ —— include include include / _{ Kétthic cuộc trò
‘x include jnclude ree re min
Hinh 10 — Biéu dé ca sir dung phia Client 2.3.2 Biéu do ca sir dung phia Server
Thống kê số lượng người dùng hệ thông
Hiễn thị danh sách người dùng hệ thông Đăng xuất
Hình II — Biểu đồ ca sử dụng phía Server
- Biểu đồ hoạt động cho ca sử dụng “Gửi tin nhắn văn bản”:
Nhập tin nhăn văn bản
Hình 12-— Biểu đồ hoạt động cho ca sử dụng gửi tin nhắn văn bản
Hiên thị tin nhăn (theo định dạng nhận)
- Biểu đồ hoạt động cho ca sử dụng “Dừng server”:
Cập nhật trạng thái thanh OFF Đăng xuât khỏi server
Hình 13-— Biểu đồ hoạt động cho ca sử dụng dừng server
- Biểu đồ trạng thái cho ca sử dụng “Gửi tin nhắn văn bản”:
Nhập tin nhắn văn bản Xử lý tin nhắn
Gửi tin nhắn đến người nhận Hình 14-— Biểu đồ trạng thái cho ca sử dụng gửi tin nhắn văn bản
- Biéu đồ trạng thái cho ca sử đụng “Dừng server”:
Nhấn nút stop server Xử lý yêu cầu
Kết thúc xử lý Đăng xuất tất cả client
Hình 15-— Biểu đồ trạng thái cho ca sử dụng dừng server
- Biểu đồ trình tự cho ca sử dụng “Gửi tin nhắn văn bản”: client1 ‘nanan van client2
Hinh 16 — Biểu đồ trình tự cho ca sử dụng gửi tin nhắn văn bản
- Biểu đồ trình tự cho ca sử đụng “Dừng server”:
Dừng Server() Dang xuat client()
Hình 17-— Biểu đồ trình tự cho ca sử dụng dừng server
- Biểu đồ giao tiếp cho ca sử dụng “Gửi tin nhắn văn bản”:
2: Gửi tin nhắn() 1: Nhập tin nhăn văn bản() client tin nhan van ban
Hinh 18 — Biéu dé giao tiếp cho ca sử dụng gửi tin nhắn văn bản
- Biêu đồ giao tiếp cho ca sử dụng “Dừng server”:
2: Cập nhật trạng thái server()
Hinh 19 — Biểu đồ giao tiếp ca sử dụng dừng server
3.1.1 Màn hình kết nối Client đến Server
- Người dùng có thé nhập dia chi IP va Port của Server để kết nối es Select server = 0 x
Hinh 20— Man hinh két néi client dén server
- Ngoài ra, người dùng bắt buộc phải nhập username đề phân biệt với các người dùng khác đang truy cập vào Server
23 lE Chat client og bd
Login Sign up as Error x
- Người dùng sẽ bi từ chối truy cập nếu username trùng với một người khác đã truy cập vào trước
3.1.3 Màn hình chính của Client
- Màn hình chính của client bao gồm:
+ Hiền thị username của người dùng đã đặt
+ Khung thông tin ở góc phải gồm: địa chỉ IP va port cua server, port cua client + Danh sách các user khác đang kết nôi đên server
Hình 21 — Màn hình chính của client
- Ngoài ra, còn có chức năng Save Server, giúp người lưu thông tin của server hiện tại đề truy cập nhanh trong những lần kết nói tiếp theo
Hình 22 — Màn hình kết nối client đến server sau khi thực hiện lưu server
Để bắt đầu cuộc trò chuyện trong boxchat, người dùng cần chọn một user từ danh sách các user đang hoạt động trên màn hình chính Sau đó, user được chọn phải xác nhận tham gia vào boxchat để thực hiện chat.
Hình 23 — Xác nhận lời mời tham gia vào boxchat
Hình 24-— Boxchat được tạo ra
- Boxchat có một số tính năng sau:
Người dùng có thể gửi tin nhắn văn bản bằng cách nhập nội dung vào ô textbox ở cuối hộp chat và nhấn vào biểu tượng “Gửi” màu xanh hoặc phím “Enter” trên bàn phím Sau khi gửi, tin nhắn sẽ được định dạng với nội dung tin nhắn và thời gian gửi Tin nhắn gửi đi sẽ có nền màu xanh và căn lề phải, trong khi tin nhắn nhận được sẽ có nền màu xám và căn lề trái.
Hình 25— Gửi tin nhắn văn bản
+ Gửi tệp: người dùng nhắn vào icon “tệp” màu đen, sau đó lựa chọn tệp trong máy và tiễn hành gửi
+ Gửi emoij: người dùng có thê gửi emoij bằng cách nhấn trực tiếp vào chúng Boxchat hién co 5 emoy: like, love, smile, sad, angry
- Sau khi khởi động chương trình phía Server, ứng dụng sẽ thông báo kết nối thành công
Hinh 28 — Màn hình splash phía server
3.2.2 Màn hình chính của Server
Hình 29 — Màn hình chính của server
- Màn hình chính của server bao gồm:
+ Thông tin server gồm port va dia chi IP, có thé thay doi Ding để cung cấp cho các client truy cập vào hệ thống
+ Hiền thị trạng thái server (ON/OFF) và số lượng user đang truy cập vào hệ thông
Hình 31 — Thống kê của server
The Start/Stop server function allows the server to listen for client access when in the "start" state, while it ceases operation when in the "stop" state.
Hình 32 — Khởi động/Ngừng server + Liệt kê danh sách các user đang truy cập vào hệ thông
Hình 33— Danh sách user đang trực tuyến
Kết luận và hướng phát triển
Qua đề tài nghiên cứu Đồ án môn học Lập trình mạng, em đã đạt được một số kết quả sau:
Bài viết này cung cấp kiến thức cơ bản về lập trình mạng, bao gồm việc áp dụng mô hình mạng Client/Server và giao thức TCP vào sản phẩm Trong phần thực nghiệm, ứng dụng chat được thiết kế thành công theo mô hình Client/Server, cho phép người dùng thực hiện nhiều chức năng như tạo box chat, gửi văn bản, gửi tệp tin và gửi emoji.
Mô hình tương tác giữa Client và Š€TV€T - L1 20112 1n v11 211 1111115011511 kg 14
ec socket() socket() c Ỷ bind() y Ỷ listen() connect() write() y close() close()
Hình 9 — M6 hinh Client/Server sir dung TCP socket
Mô hình Client-Server sử dụng Socket ở chế độ có nối kết (TCP), phân thành 4 giai đoạn như SaU:
Giai đoạn 1: Server tạo Socket để gán số hiệu công và lắng nghe yêu cầu kết nối từ Client Đầu tiên, server yêu cầu tạo một socket để sử dụng các dịch vụ của tầng vận chuyển thông qua hàm socket() Sau đó, server gán số hiệu công (port) cho socket bằng hàm bind() và bắt đầu lắng nghe các yêu cầu kết nối từ client trên cổng đã được gán thông qua hàm listen() Giai đoạn 2: Client cũng tạo Socket để yêu cầu thiết lập một kết nối với Server Client yêu cầu tạo một socket để sử dụng các dịch vụ của tầng vận chuyển, hệ thống thường tự động gán một số hiệu công còn rảnh cho socket của Client Tiếp theo, Client gửi yêu cầu kết nối đến server với địa chỉ IP và Port xác định thông qua hàm connect() Khi server chấp nhận kết nối của client bằng hàm accept(), một kênh giao tiếp ảo được hình thành, cho phép Client và server trao đổi thông tin qua kênh này.
+ Giai đoạn 3: Trao đối thông tin giữa Client và Server
Sau khi chấp nhận yêu cầu kết nối, server thực hiện lệnh read() và chờ đợi thông điệp yêu cầu từ client Sau khi nhận được yêu cầu, server sẽ phân tích và thực thi, sau đó gửi kết quả trở lại client bằng lệnh write().
Sau khi gởi yêu cầu bằng lệnh write(), client chờ nhận thông điệp kết quả (ReplyMessage) từ server bằng lệnh read()
+ Giai đoạn 4: Kết thúc phiên làm việc
Các câu lệnh read(Q), write() có thể được thưc hiện nhiều lần (ký hiệu bằng hình ellipse)
Kênh ảo sẽ bị xóa khi Server hoặc Client đóng socket bằng lệnh close().