Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
396,78 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ Tìm hiểu và xây dựng ứng dụng hô ̣i thoại mô hình Client-Server hoạt đô ̣ng theo giao thức TCP/IP Sinh viên thực hiện: TRƯƠNG SĨ PHÚC Lớp: 19IT6 Giảng viên hướng dẫn: ThS TRẦN ĐÌNH SƠN Đà Nẵng, tháng 09 năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ Tìm hiểu và xây dựng ứng dụng hô ̣i thoại mô hình Client-Server hoạt đô ̣ng theo giao thức TCP/IP Sinh viên thực hiện: TRƯƠNG SĨ PHÚC Lớp: 19IT6 Giảng viên hướng dẫn: ThS TRẦN ĐÌNH SƠN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Đà Nẵng, ngày tháng 12 năm 2021 Giảng viên hướng dẫn ThS TRẦN ĐÌNH SƠN LỜI CẢM ƠN Để hoàn thành đề tài này, em xin gửi lời cảm ơn chân thành đến thầy Trần Đình Sơn - giảng viên Khoa Khoa học máy tính – Trường Đại học công nghệ thông tin truyền thông Việt Hàn – Người hướng dẫn - tận tình bảo hướng dẫn em hoàn thành đồ án Trong q trình làm đồ án cịn nhiều thiếu sót, em mong nhận bảo, đóng góp ý kiến thầy để em có điều kiện bổ sung, khắc phục hạn chế đồ án sở Em xin trân trọng cảm ơn ! Sinh viên TRƯƠNG SĨ PHÚC MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ MỞ ĐẦU Giới thiệu .8 Mục tiêu đề tài .8 Phương pháp triển khai đề tài Kết cấu đồ án Chương I CƠ SỞ LÝ THUYẾT I.1 Tổng quan lập trình mạng I.1.1 Giới thiệu giao thức TCP/IP 10 I.1.2 Giới thiệu mơ hình Client-Server .12 I.2 Tổng quan ngôn ngữ Java 13 I.2.1 Giới thiệu 13 I.2.2 Những đặc điểm Java 14 I.2.3 Cơ chế Socket Java .14 Chương PHÂN TÍCH THIẾT KẾ HỆ THỐNG 10 I.1 Phân tích u cầu tốn 10 I,2.Thiết kế mơ hình hệ thống Error! Bookmark not defined I.2.1 Xâu dựng biểu đồ 14 Chương XÂY DỰNG 15 AAAAA 15 BBBBBBB 15 Kết chương .15 KẾT LUẬN 16 Kết đạt .16 Hướng nghiên cứu .16 Với hạn chế tồn nêu trên, hướng nghiên cứu …dự kiến sau: 16 PHỤ LỤC i DANH MỤC CÁC TỪ VIẾT TẮT VIẾT TẮT NỘI DUNG DANH MỤC HÌNH VẼ Hình 1: Mơ hình lập trình mạng Hình 2: Sơ đồ TCP/IP 10 Hình 3: Mơ hình Client-Server 12 Hình 4: Mơ hình truyền tin Socket 19 MỞ ĐẦU Giới thiệu Ngày nói đến phát triển ứng dụng phần mềm, đa số người ta muốn nói đến chương trình có khả làm việc mơi trường mạng tích hợp nói chung mạng máy tính nói riêng Từ chương trình kế tốn doanh nghiệp, quản lý, trị chơi, điều khiển chương trình ứng dụng mạng Nhu cầu công nghệ thông tin đời sống đa dạng Việc mở rộng hệ thống truyền thơng ngày có nhiều máy vi tính kết nối vào mạng Internet Với việc ứng dụng giao thức TCP/IP làm cho hệ thống mạng ngày rộng phát triển vượt bật Vấn đề đề an ninh, bảo mật,…là mạnh giao thức đem lại cho công nghệ truyền thông Bên cạnh việc phát triển thư điện tử nhiều dịch vụ khác (gmail, yahoo, MSM mạng điện thoại di động…), việc nhắn tin gửi flie trực tiếp Internet nhu cầu thiếu Với thực tế vậy, em thực đề tài “Tìm hiểu và xây dựng ứng dụng hô ̣i thoại mô hình Client-Server hoạt đô ̣ng theo giao thức TCP/IP” Mục tiêu đề tài - Tìm hiểu khái niệm giao thức TCP/IP Socket Xây dựng ứng dụng hội thoại dựa giao thức TCP/IP Socket Phương pháp triển khai đề tài • Ngơn ngữ lập trình: Java • Chương trình soạn thảo build : Eclipse • Sử dụng giao thức TCP/IP • Sử dụng Socket Java Kết cấu đồ án Chương 1: Cơ sở lý thuyết Chương Thiết kế xây dựng hệ thống Chương Kết hướng phát triển CHƯƠNG I: CƠ SỞ LÝ THUYẾT I.1 Tổng quan lập trình mạng Mạng máy tính phát triển nhằm mục đích nghiên cứu phân tích trình giao tiếp Nó hỗ trợ giao tiếp hệ thống máy tính với để trao đổi thơng tin tài nguyên Cho nên, để thực việc kết nối mạng bạn cần phải có mạng riêng Khi nói đến phát triển ứng dụng phần mềm, đa số người ta muốn nói đến chương trình có khả làm việc mơi trường mạng tích hợp nói chung mạng máy tính nói riêng Từ chương trình kế tốn doanh nghiệp, quản lý, trị chơi, điều khiển… Vấn đề lập trình mạng liên quan đến nhiều lĩnh vực kiến thức khác Từ kiến thức sử dụng ngơn ngữ lập trình, phân tích thiết kế hệ thống, kiến thức hệ thống mạng, mô hình xây dựng chương trình ứng dụng mạng, kiến thức sở liệu… kiến thức truyền thông, kiến thức lĩnh vực liên quan khác mạng điện thoại di động, PSTN, hệ thống GPS, mạng BlueTooth, WUSB, mạng sensor… chương trình ứng dụng mạng Hình 1: Mơ hình lập trình mạng I.1.1 Giới thiệu giao thức TCP/IP TCP/IP tên chung cho tập hợp 100 giao thức sử dụng để kết nối máy tính vào mạng, hai giao thức TCP (Transmission Control Protocol) IP (Internet Protocol) Trong phạm vi Internet, thơng tin khơng truyền tải dịng riêng biệt từ máy tính tới máy tính khác Thay vào đó, liệu chia thành gói nhỏ gọi packet Các packet gửi mạng máy tính Cơng việc IP chuyển chúng đến máy tính xa Tại trạm cuối, TCP nhận packet kiểm tra lỗi Nếu lỗi xuất hiện, TCP yêu cầu gói riêng biệt phải gửi lại Chỉ tất packet nhận đúng, TCP sử dụng số thứ tự để tạo lại thơng tin ban đầu Hình 2: Sơ đồ TCP/IP - Tầng truy cập mạng(Link Layer): Cung cấp giao diện tương tác với mạng vật lý Format liệu cho phận truyền tải trung gian tạo địa liệu cho tiểu mạng dựa địa phần cứng vật lý Cung cấp việc kiểm tra lỗi trình truyền liệu - Tầng Internet(Internet Layer): Cung cấp địa logic, độc lập với phần cứng, để liệu lướt qua tiểu mạng có cấu trúc vật lý khác Cung cấp chức định tuyến để giao lưu lượng giao thông hỗ trợ việc vận chuyển liên mạng Thuật ngữ liên mạng dùng để đề cập đến mạng rộng lớn hơn, kết nối từ nhiều LAN Tạo gắn kết địa vật lý địa logic - Tầng vận chuyển(Transport Layer): Giúp kiểm soát luồng liệu, kiểm tra lỗi xác nhận dịch vụ cho liên mạng Đóng vai trị giao diện cho ứng dụng mạng - Tầng ứng dụng(Application Layer): Cung cấp ứng dụng để giải cố mạng, vận chuyển file, điều khiển từ xa, hoạt động Internet Đồng thời hỗ trợ Giao diện Lập trình Ứng dụng (API) mạng, cho phép chương trình thiết kế cho hệ điều hành truy cập mạng thơng tin địa port máy B, hiểu lỗ cắm ảo máy B mà ứng dụng u đăng ký để độc quyền sử dụng nhằn nhận liệu từ máy chủ A Trên thực tế, địa port số nguyên byte có giá trị từ đến 65535 Nó có đặc điểm : - Giá trị từ đến 1023 cổng phổ biến dành cho ứng dụng thông dụng http: 80, mail : 25, ftp : 21, Telnet 23 Các giá trị cịn lại sử dụng linh hoạt - Mỗi cổng thời điểm sử dụng cho tối đa ứng dụng Ví dụ ứng dụng sử dụng cổng 55 ứng dụng khác khơng thể sử dụng cổng 55 chừng ứng dụng trước chưa có đóng cổng 55 lại I.1.2 Giới thiệu mơ hình Client – Server Server hiểu máy chủ, thường hệ thống máy lớn, có xử lý mạnh, có khả hoạt động đáng tin cậy, có khả lưu trữ liệu lớn, chuyên quản lý tài nguyên (chủ yếu sở liệu), cung cấp dịch vụ mạng cho máy khách (client) sử dụng Bình thường chạy suốt thời gian thực sẵn sàng chấp nhận yêu cầu kết nối yêu cầu dịch vụ khác từ máy khách Client máy khách, thường sử dụng người dùng cuối Nó hoạt động dựa việc sử dụng dịch vụ mà máy server cung cấp để thực công việc mà người dùng cuối mong muốn Quy trình hoạt động mơ hình lặp lại trình sau : - Client gửi yêu cầu lên server - Server nhận u cầu sẻ xử lý thích hợp trả lời lại client Hình 3: Mơ hình Client-Server Q trình giao tiếp client server diễn theo hai chế độ: bị phong tỏa (blocked) không bị phong tỏa (non-blocked) Chế đô ̣ bị phong tỏa (blocked): Trong chế độ bị phong tỏa, tiến trình client server phát lệnh gửi liệu (send), việc thực thi tiến trình bị tạm ngừng tiến trình nhận phát lệnh nhận liệu (receive) Tương tự tiến trình nhận liệu, tiến trình (client server) phát lệnh nhận liệu, mà thời điểm chưa có liệu gửi tới việc thực thi tiến trình bị tạm ngừng có liệu gửi tới Chế đô ̣ không bị phong tỏa (non-blocked): Trong chế độ này, tiến trình client hay server phát lệnh gửi liệu thực sự, việc thực thi tiến trình tiến hành mà khơng quan tâm đến việc có tiến trình phát lệnh nhận liệu hay khơng I.2 Tổng quan ngơn ngữ Java I.2.1 Giới thiệu Java ngơn ngữ lập trình hướng đối tượng Nó sử dụng phát triển phần mềm, trang web, game hay ứng dụng thiết bị di động Java tạo với tiêu chí “Viết (code) lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA) Chương trình phần mềm viết Java chạy tảng (platform) khác thông qua môi trường thực thi với điều kiện có mơi trường thực thi thích hợp hỗ trợ tảng Ngày Java sử dụng với mục đích sau: • Phát triển ứng dụng cho thiết bị điện tử thông minh, ứng dụng cho doanh nghiệp với quy mơ lớn • Tạo trang web có nội dung động (web applet), nâng cao chức server • Phát triển nhiều loại ứng dụng khác nhau: Cơ sở liệu, mạng, Internet, viễn thơng, giải trí, I.2.2 Những đặc điểm Java • Đơn giản quen thuộc • Hướng đối tượng quen thuộc • Mạnh mẽ (thể chế tự động thu gom rác) an tồn • Kiến trúc trung lập, độc lập tảng có tính khả chuyển • Hiệu suất cao • Phân tán • Đa nhiệm I.2.3 Cơ chế Socket java I.2.3.1 Giới thiệu Socket Socket khái niệm để định vị dịch vụ máy tính mạng kết hợp hai khái niệm IP Port lại Để nói chuyện TCP chương trình client chương trình server phải thiếp lập đường truyền, chương trình phải kết nối lại với socket điểm cuối để kết nối, client server muốn nói chuyện với phải thơng qua socket, thông điệp phải qua socket Chúng ta mường tượng socket cửa người muốn hay vào phải thông qua cửa I.2.3.2 Cơ chế Socket Một socket điểm cuối thông tin hai chiều liên kết hai chương trình chạy mạng Những lớp socket dùng để đại diện cho kết nối chương trình client chương trình server Trong Java gói Java.net cung cấp hai lớp Socket ServerSocket để thực kết nối client server - Socket có nhiệm vụ sau : + Gắn cổng máy + Lắng nghe kết + Kết nối/Đóng kết nối đến máy tính xa qua cổng gắn + Gửi/nhận liệu + Lắng nghe liệu đến Hình 4: Mơ hình truyền tin Socket Gói ServerSocket: Mở cổng kết nối Server, sẵn sàng hoạt động cổng public Socket(int port) : Tạo cổng kết nối cổng port Lắng nghe, chờ đợi yêu cầu kết nối cổng kết nối có yêu cầu public accept():Chấp nhận kết nối trả đối tượng Socket mô tả nguồn kết nối đến Tạo luồng liệu vào để truyền liệu cổng đến socket máy khách (Đây chức quan trọng nhất) getInputStream() : Trả luồng mà nhập liệu vào getOutputStream() : Trả luồng ghi liệu Đóng kết nối lúc khơng sử dụng close() : Đóng kết nối khơng cần Gói Socket: Kết nối tới máy chủ Server thông qua địa IP số hiệu cổng máy chủ Server public Socket(InetAddress address, int port) Tạo luồng liệu vào public OutputStream getOutputStream() ; public InputStream getInputStream() ; Đóng kết nối Socket public void Close(); Đóng kết nối Một số gói, lớp bổ trợ khác: a Gói Swing, awt.event: tạo giao diện người dùng b Gói Runnable, Thread: Hỗ trợ đa tiến trình c Gói Java.io: Cung cấp lớp vào liệu CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG II.1 Phân tích u cầu bài tốn u cầu tốn: Xây dựng ứng dụng hội thoại mơ hình Client-Server hoạt động theo giao thức TCP/IP Phân tích: - Xây dựng chương trình bên Server: + Tạo TCP Socket gắn vào cổng + Xây dựng chương trình Server đa tuyến (Threaded Server) phép nhiều Client kết nối tới Server.Mỗi tuyến đảm nhận liên lạc với Client + Luôn chờ lắng nghe yêu cầu kết nối từ phía Client + Chấp nhận kết nối tạo Thread(Socket) tương ứng + Truyền nhận thông tin qua luồng nhận/gửi liệu Socket + Khi user kết nối đến Server Server cập nhật User vào mảng user kết nối gửi tới Client kết nối + Khi user gửi thông điệp DISCONNECT đến Server Server gửi thơng báo user tới Client xóa user gửi thông điệp DISCONNECT mảng user kết nối + Thiết kế giao diện cho Server - Xây dựng chương trình bên Client: + Tạo TCP Socket với địa IP số cổng mà chương trình Server chạy + Thiết lập kết nối tới Server + Trao đổi liệu với Server + Cập nhật user khác vừa CONNECT/DISCONNECT + Gửi nhận thông điệp với tất Client khác phòng chat + Chức xem lại lịch sử trò chuyện + Chức up file, download file, gửi emoji, gửi hình ảnh… + Thiết kế giao diện hiển thị khung chat phía Client II.2 Thiết kế mô hình hệ thống Chức gửi tin nhắn: Khi người dùng nhập ký tự từ bàn phím nhấn phím Enter kích vào biểu tượng Gửi Client gửi đến Server đối tượng Messenger gồm tên người gửi ký tự nhập từ bàn phím Khi Server nhận đối tượng Messenger từ Client Server nhân đối tượng Messenger gửi đến Client lại Chat Room (trừ Client gửi) Chức gửi nhãn dán: Khi người dùng vào biểu tượng mặt cười chương trình thị lên danh sách nhãn dán có chương trình người dùng click nhãn dán gửi đến Server đối tượng Messenger gồm tên người gửi mảng byte chuyển từ nhãn dán Khi Server nhận đối tượng Messenger từ Client Server nhân đối tượng Messenger gửi đến Client lại Chat Room (trừ Client gửi) Chức gửi File: Khi người dùng click vào biểu tượng có hình tài liệu chương trình hiển thị cửu sổ FileDialog để người dùng chọn file có dung lương 50MB Khi người dùng chọn file xong Client gửi đến Server đối tượng Messenger gồm tên người gửi, tên file mảng byte chuyển từ file chọn Khi Server nhận đối tượng Messenger từ Client Server nhân đối tượng Messenger gửi đến Client lại Chat Room (trừ Client gửi) Chức tải File: Khi người dùng click vào file chia hiển thị hộp thoại tin nhắn chương trình thị cửa sổ FileDialog để người dùng chọn vị trí để download file Khi người dùng nhấn Save file lưu vào vị trị mà người dùng chọn Chức tải ảnh phóng to xem ảnh: Khi người dùng click vào biểu tượng hình ảnh giao diện chat chương trình hiển thị cửa sổ FileDialog người dùng bắt buộc phải chọn file có đuôi PNG, JPG, GIF, BMP… đuôi liên quan đến tệp hình ảnh, Khi người dùng chọn file ảnh xong Client gửi đến Server đối tượng Messenger gồm tên người gửi, tên file ảnh mảng byte chuyển từ file ảnh chọn Người dùng ấn vào file ảnh chia hộp thoại chat ảnh hiển thị hộp thoại khác phóng to gấp lần hình ảnh gốc II.2.1 Xây dựng biểu đồ Hình Biểu đồ Use case người dùng hệ thống Kết chương Quy trình … Chương XÂY DỰNG … Chương trình bày kết quả, chức cài đặt hệ thống: phía người dùng & phía người quản trị, giao diện… AAAAA Khác với … BBBBBBB Khác với … Kết chương Quy trình … KẾT LUẬN Kết đạt Nêu học được, đạt qua trình làm đồ án mặt lý thuyết, mặt thực nghiệm, trải nghiệm… Bên cạnh … Hướng nghiên cứu Với hạn chế tồn nêu trên, hướng nghiên cứu …dự kiến sau: - Tìm hiểu - Khai thác… [1] TÀI LIỆU THAM KHẢO [1 T C f S Exploration, "Why STEM Topics are ] Interrelated: The Importance of Interdisciplinary Studies in K-12 Education," 2008 [2 ACT, "STEM EDUCATION IN THE U.S," 2017 ] [3 V H Tiến, "Một số phương pháp dạy học tích cực" ] [4 B G D V Đ TẠO, "ĐỊNH HƢỚNG GIÁO DỤC STEM TRONG ] TRƢỜNG TRUNG HỌC," 2018 [5 C D Council, "Promotion of STEM Education ] Unleashing Potential in Innovation," 2015 [6 C Joint Economic Committee Chairman’s Staff ] Senator Bob Casey, STEM Education: Preparing for the Jobs of the Future, April 2012 [7 "http://thoibaotaichinhvietnam.vn/pages/quoc] te/2015-12-08/10-quoc-gia-co-nen-khoa-hoc-ky-thuattien-tien-nhat-the-gioi-26818.aspx" [8 "http://truonghocketnoi.edu.vn/data/thuvien/DongPhD ] /hoclieu_3650611_1446867073.pdf" [9 M Sanders, "STEM, STEM Education, STEMmania," ] 2009 [1 L C Elaine J Hom, "What is STEM Education?," 0] 2014 [1 A C f E Research, "CHALLENGES IN STEM LEARNING 1] IN AUSTRALIAN SCHOOLS," 2018 [1 Hays Blaine Lantz, "Science, Technology, 2] Engineering, and Mathematics (STEM) Education What Form? What Function?," 2009 [1 "https://hocvienkhampha.edu.vn/hieu-sao-cho-dung3] ve-giao-duc-stem" [1 M Windale, "“Giáo dục STEM bồi dưỡng nhà đổi 4] mới, sáng tạo tương lai”, Hội thảo Vai trò nhà nước tổ chức cá nhân có liên quan việc xây dựng chiến lược phát triển giáo dục STEM,," Bộ Giáo dục Đào tạo - Hội đồng Anh, 2016 [1 U D o Education, "Report of the Academic 5] [1 6] [1 7] [2] [3] Competitiveness Council," 2007 H S Đ ( biên), "Sách giáo viên Tin học," Nhà xuất Giáo dục Đào tạo, 2002 J A T A G P V S J C P A W a N L Rodger W Bybee, "The BSCS 5E Instructional Model: Origins and Effectiveness," Office of Science Education National Institutes of Health, 12 June 2006 Error! Hyperlink reference not valid.https://cs231n.github.io/python-numpy-tutorial/ PHỤ LỤC ... mô hình Client- Server hoạt đô ̣ng theo giao thức TCP/ IP? ?? Mục tiêu đề tài - Tìm hiểu khái niệm giao thức TCP/ IP Socket Xây dựng ứng dụng hội thoại dựa giao thức TCP/ IP Socket Phương pháp triển... Mỗi cổng thời điểm sử dụng cho tối đa ứng dụng Ví dụ ứng dụng sử dụng cổng 55 ứng dụng khác khơng thể sử dụng cổng 55 chừng ứng dụng trước chưa có đóng cổng 55 lại I.1.2 Giới thiệu mơ hình Client. .. Xây dựng ứng dụng hội thoại mơ hình Client- Server hoạt động theo giao thức TCP/ IP Phân tích: - Xây dựng chương trình bên Server: + Tạo TCP Socket g? ??n vào cổng + Xây dựng chương trình Server