Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,46 MB
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 CUỐI KỲ LẬP TRÌNH MẠNG ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG CHAT ROOM SỬ DỤNG GIAO THỨC UDP Sinh viên thực hiện: Nguyễn Khắc thịnh Nguyễn Hải Dương Nguyễn Phương Thanh Lê Hoàng Minh Giảng viên hướng dẫn: TS Hoàng Hữu Đức Đà Nẵng, tháng 12 năm 2022 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 CUỐI KỲ LẬP TRÌNH HỆ THỐNG ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH HỘI THẢO TỪ XA Đà Nẵng, tháng 12 năm 2022 LỜI CẢM ƠN Đầu tiên nhóm chúng em xin chân thành cảm ơn thầy giáo TS Hoàng Hữu Đức giảng viên mơn lập trình mạng, người ln hỗ trợ chúng em suốt trình học tập Trong thời gian làm đồ án, chúng em học hỏi, bổ sung kiến thức mà cải thiện nâng cao khả làm việc nhóm, tập trung có trách nhiệm với cơng việc nhóm Dù cố gắng hồn thành đồ án kiến thức hạn chế nên sai sót, lầm lẫn chắn có Chúng em mong nhận cảm thơng góp ý thầy giáo TS Hoàng Hữu Đức, quý thầy cô giáo Khoa tất bạn! Chúng em xin chân thành cảm ơn! NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN LỜI NÓI ĐẦU Với phát triển nhảy vọt công nghệ thông tin nay, Internet ngày giữ vai trò quan trọng lĩnh vực khoa học kỹ thuật đời sống Dĩ nhiên bạn nghe nói nhiều Internet, nói cách đơn giản, Internet tập hợp máy tính nối kết với nhau, mạng máy tính tồn cầu mà kết nối máy tính riêng họ Với mạng Internet, tin học thật tạo nên cách mạng trao đổi thông tin lĩnh vực văn hóa, xã hội, trị, kinh tế Ngày nay, việc phát triển hay xây dựng ứng dụng tảng chatting phổ biến rộng rãi Chatting hiểu đơn giản hành động trao đổi thông tin dạng, người nhóm người, từ máy sang máy lúc, bàn phím thiết bị chuyển âm Từ nhóm chúng em muốn xây dựng chat room sử dụng giao thức socket TCP ngôn ngữ Java Sơ lược socket, socket giao diện lập trình ứng dụng mạng dùng để truyền nhận giữ liệu internet Giữa hai chương trình chạy mạng cần có liên kết giao tiếp hai chiều, hay gọi two-way communication để kết nối process trò chuyện với Điểm cuối (endpoint) liên kết gọi socket Socket sử dụng để "lắng nghe" có tin nhắn mới, reaction để cập nhật lên giao diện Việc cập nhật liệu thời gian thực đem lại trải nghiệm tuyệt vời cho người dùng Nó giải vấn đề cách nhanh gọn tiếm kệm tài nguyên cho client server Như nói trên, nhóm chúng em xây dựng chat room socket dựa giao thức TCP (Transmission Control Protocol) việc truyền liệu khơng u cầu có thiết lập kết nối q trình Do đó, gọi socket hướng kết nối MỤC LỤC LỜI CẢM ƠN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN LỜI NÓI ĐẦU MỤC LỤC Chương I: Giới Thiệu Tổng Quan .8 Khái niệm Internet .8 Network Socket User Datagram Protocol (UDP) 10 Chương 2: Tìm Hiểu Về Ngôn Ngữ Java 15 Khái niệm Java 15 Công dụng 15 Sự lựa chọn phổ biến 16 Java hoạt động 17 Lập trình hướng đối tượng 17 Các tính chất Java 18 Các loại access modifier Java 19 Nested Class .20 Biến 20 10 Exception 21 11 Các kiểu liệu 22 12 Ép kiểu Java 22 13 Toán tử Instanceof 23 14 Nạp chồng (Overloading) ghi đè (Overriding) 24 15 Interface .24 16 Abstracts 24 17 Thuật toán 25 18 Collection 26 19 Quan hệ kế thừa Java 29 Chương 3: Tổng quan lập trình mạng 30 Tổng quan mạng máy tính .30 Mơ hình mạng OSI .33 Giao thức truyền thông 35 Chương 4:Xây dựng ứng dụng thực tế 37 Phân tích yêu cầu đề tài .37 Mục đích xây dựng 38 Xác định yêu cầu người dùng 38 Yêu cầu giao diện .38 Phân tích chức hệ thống .38 Biểu đồ phân tích thiết kế hệ thống 38 Thiết kế giao diện chức 39 KẾT LUẬN 43 TÀI LIỆU THAM KHẢO 44 Chương I: Giới Thiệu Tổng Quan Khái niệm Internet 1.1 Giới thiệu chung Internet mạng máy tính tồn cầu thành lập từ năm 80 bắt nguồn từ mạng APARRNET quốc phòng Mỹ Vào mạng Internet, bạn tìm thấy nhiều tài liệu để nghiên cứu, học tập, trao đổi thư từ, đặt hàng, mua bán Một mục tiêu Internet chia sẻ thông tin người dùng nhiều lĩnh vực khác Mỗi máy tính Internet gọi host Mỗi host có khả truyền thơng tới máy khác Internet Một số host nối tới mạng đường nối Dial-up (quay số) tạm thời, số khác nối đường nối mạng thật 100% (như Ethernet, Tokenring ) 1.2 Phân loại Các máy tính mạng chia làm nhóm Client Server Client: Máy khách mạng, chứa chương trình Client Server: Máy phục vụ-Máy chủ Chứa chương trình Server, tài nguyên (tập tin, tài liệu ) dùng chung cho nhiều máy khách Server trạng thái chờ yêu cầu đáp ứng yêu cầu Client Internet Server: Là server cung cấp dịch vụ Internet Web Server, Mail Server, FPT Server… 2.1 Network Socket Các khái niệm Socket Socket cấu trúc phần mền nút mạng mạng máy tính đóng vai trị điểm cuối để gửi nhận liệu mạng Cấu trúc thuộc tính socket xác định giao diện lập trình ứng dụng (API) cho kiến trúc mạng Các ổ cắm tạo suốt thời gian tồn quy trình ứng dụng chạy Do tiêu chuẩn hóa giao thức TCP/IP q trình phát triển Internet, thuật ngữ network socket sử dụng phổ biến ngữ cảnh giao thức Internet thường gọi ổ cắm Internet Socket xác định bên host khác socket address, transport protocol, IP address, số port 2.2 Tìm hiểu rõ Network Socket Giao diện lập trình ứng dụng (API) cho ngăn xếp giao thức mạng tạo tay cầm cho socket tạo ứng dụng, thường gọi socket descriptor Tại thời điểm tạo với API, network socket liên kết với kết hợp loại giao thức mạng sử dụng để truyền, địa mạng máy lưu trữ số port Ports tài nguyên đánh số đại diện cho loại cấu trúc phần mềm khác Chúng sử dụng làm loại dịch vụ sau tạo quy trình, chúng đóng vai trị thành phần vị trí định địa bên ngồi (từ mạng), để máy chủ khác thiết lập kết nối Network Socket dành riêng cho kết nối liên tục để liên lạc hai nút chúng tham gia vào liên lạc multicast khơng kết nối Giao diện lập trình ứng dụng (API) mà chương trình sử dụng để giao tiếp với ngăn xếp giao thức, sử dụng network socket, gọi API socket Việc phát triển chương trình ứng dụng sử dụng API gọi lập trình network socket lập trình mạng API socket Internet thường dựa tiêu chuẩn socket Berkeley Trong tiêu chuẩn socket Berkeley, socket dạng mô tả tệp, triết lý Unix "mọi thứ tệp" tương đồng socket tệp Cả hai có chức đọc, viết, mở đóng Trong thực tế, khác biệt làm căng thẳng tương tự giao diện khác (gửi nhận) sử dụng socket Trong giao tiếp q trình, đầu thường có socket riêng Trong giao thức Internet tiêu chuẩn TCP UDP, socket address kết hợp địa IP số port, giống đầu kết nối điện thoại kết hợp số điện thoại số extension Socket khơng cần có địa nguồn để gửi liệu, chương trình liên kết socket với source address, socket sử dụng để nhận liệu gửi đến địa Dựa address, socket Internet phân phát data packets cho ứng dụng thích hợp Socket thường đề cập cụ thể đến socket Internet socket TCP Socket Internet đặc trưng tối thiếu điều sau đây: Địa socket cục bộ, bao gồm địa IP cục (đối với TCP UDP, IP) số port Giao thức: Giao thức vận chuyển, ví dụ: TCP, UDP, IP Điều có nghĩa điểm cuối (cục từ xa) có cổng TCP 53 cổng UDP 53 socket riêng biệt, IP khơng có port Một socket kết nối với socket khác, ví dụ, trình thiết lập kết nối TCP, có địa socket từ xa 3.1 Transmission control protocol (TCP) Sơ lược TCP Internet phần thiếu sống hàng ngày Tuy nhiên, hiểu tường tận cách thức hoạt động Internet Phương thức truyền dẫn mà Internet sử dụng phương thức TCP/IP, phương thức truyền dẫn phổ biến TCP giao thức mạng quan trọng sử dụng việc truyền liệu qua mạng Một giao thức phạm vi mạng 10 Có nhiều giao thức sử dụng để giao tiếp truyền đạt thông tin Internet, số giao thức tiêu biểu: TCP (Transmission Control Protocol): thiết lập kết nối máy tính để truyền liệu Nó chia nhỏ liệu thành gói (packet) đảm bảo việc truyền liệu thành công IP (Internet Protocol): định tuyến (route) gói liệu chúng truyền qua Internet, đảm bảo liệu đến nơi cần nhận HTTP (HyperText Transfer Protocol): cho phép trao đổi thông tin (chủ yếu dạng siêu văn bản) qua Internet FTP (File Transfer Protocol): cho phép trao đổi tập tin qua Internet SMTP (Simple Mail Transfer Protocol): cho phép gởi thông điệp thư điện tử (e-mail) qua Internet POP3 (Post Office Protocol, phiên 3): cho phép nhận thông điệp thư điện tử qua Internet WAP (Wireless Application Protocol): cho phép trao đổi thông tin thiết bị không dây, điện thoại di động Web socket Websocket công cụ hỗ trợ việc kết nối qua lại internet client server Giúp diễn nhanh chóng hiệu thông qua việc sử dụng TCP socket Không sử dụng riêng cho ứng dụng web, Websocket áp dụng cho ứng dụng khác cần có trao đổi thơng tin Internet Ưu điểm Websocket gì? Websocket mang lại nhiều ưu điểm việc kết nối client server Cụ thể sau: Tăng tốc độ truyền tải thông tin chiều 38 Dễ phát xử lý trường hợp có lỗi xảy Dễ dàng sử dụng, không cần cài đặt thêm phần mềm bổ sung khác Không cần sử dụng nhiều phương pháp kết nối khác Nhược điểm Websocket gì? Một số nhược điểm Websocket mà bạn cần lưu ý sử dụng kể đến như: Chưa hỗ trợ tất trình duyệt Với dịch vụ có phạm vi u cầu, Websocket chưa hỗ trợ hồn toàn Wed RTC Đây API viết JavaScript, đáp ứng mong muốn giao tiếp thời gian thực Nhờ đó, bạn khơng cần dùng đến Plugin hay phần mềm hỗ trợ Công cụ hỗ trợ khả truyền tải Media giao tiếp thời gian thực 39 Cơng cụ tích hợp trình duyệt kết nối real – time thông qua Video Call, Voice Call hay transfer data P2P (peer-to-peer) Ngay từ đời, ứng dụng lập trình viên ưa chuộng Mục đích sử dụng WebRTC Chắc chắn, tính bật WebRTC khả truyền tải video, âm thanh, liệu Hoạt động trao đổi hai hay nhiều thiết bị diễn thời gian thực Quá trình không cần bên trung gian hay cài đặt Plugin bổ sung WebRTC giúp việc tương tác diễn xác thời gian thực Apperar.in trang web sử dụng WebRTC tiếng Tại cung cấp dịch vụ tạo phịng chat video nhanh chóng Thậm chí, bạn khơng cần phải đăng nhập tài khoản sử dụng bình thường Ngồi ra, tính ứng dụng cịn thấy việc tạo tựa game trình duyệt Nhờ đó, trải nghiệm người chơi thao tác trở nên thuận tiện, thú vị nhiều Ưu điểm trội đến từ WebRTC Khơng khó để bạn nhận ưu điểm trội đến từ WebRTC Những điều giúp công cụ khẳng định vị riêng 40 WebRTC hỗ trợ đa tảng, miễn phí lại có tính bảo mật tương đối cao Hình thức mã nguồn mở miễn phí: Google cho biết cơng cụ truyền thơng thời gian thực hồn tồn khơng phí Bạn ln thấy xuất sẵn sàng trình duyệt Hỗ trợ đa tảng khác nhau: Dù giai đoạn phát triển khả hoạt động tốt trình duyệt, hệ điều hành Điều cịn cho phép lập trình viên viết đoạn mã HTML làm việc với máy tính, thiết bị di động Bảo mật âm video : WebRTC sử dụng giao thức SRTP (Secure Real-Time Transport Protocol) Mục đích để mã hóa xác thực liệu Media.Trong trình thực tác vụ video hay voice đảm bảo chống lại hoạt động nghe trộm Không cần Plugin phần mềm hỗ trợ: Điều rõ ràng từ bạn bắt đầu tìm hiểu Cơng cụ đánh giá cao khả linh hoạt Nhờ đó, người dùng có trải nghiệm tiện lợi, tối ưu tốc độ, tiết kiệm chi phí,… Nhược điểm WebRTC Tuy đánh giá cao công cụ tồn nhược điểm định Bạn nên lưu ý để phòng ngừa cố, bất tiện,… Công cụ bị ngăn cản NAT và tường lửa cố gắng thực kết nối P2P Khơng có chế báo hiệu cài sẵn ứng dụng tạo kết nối P2P trình duyệt Chưa thức vào hồn thiện, số có IE, Safari chưa thực hỗ trợ tốt Giữa trình duyệt thiếu tính thống chuẩn video sử dụng cho WebRTC Số lượng hàm API cho trình duyệt khác nhau, tăng rủi ro phát sinh lỗi 41 Tuy tồn nhược điểm chờ đợi vào cải tiến tương lai Khi mặt hoàn thiện, chắn công cụ hỗ trợ tốt - 42 Chương 4:Xây dựng ứng dụng thực tế Trong chương phân tích yêu cầu đề tài việc tóm tắt hoạt động hệ thống mà dự án ứng dụng, phạm vi ứng dụng đề tài đối tượng sử dụng, mục đích dự án Xác định yêu cầu người dùng: Xuất phát từ yêu cầu người dùng cho phù hợp để vạch yêu cầu hệ thống cần xây dựng việc thiết kế giao diện, yêu cầu chức năng, quyền riêng tư yêu cầu độ bảo mật Trong chương xây dựng số biểu đồ Use Case, biểu đồ hoạt động chức hệ thống thông tin sở liệu ứng dụng Phân tích u cầu đề tài 1.1 Tóm tắt hoạt động hệ thống mà dự án ứng dụng: ứng dụng phòng ảo dùng để giúp người dùng giao tiếp với qua Internet, theo truyền thống văn đơn giản, chuyển thơng tin theo nhiều cách cho phép truyền tải hình ảnh biểu tượng cảm xúc đoạn chat Được cập nhật nâng cấp, chỉnh sửa, thay chức theo góp ý người dùng Các chức xây dựng xếp hợp lý, giúp người dùng có cảm giác thoải mái tiện lợi 1.2 Đối tượng sử dụng Có đối tượng dụng client (người dùng) server: Người dùng: từ ứng dụng, người dùng nhắn tin chia sẻ thơng tin qua với người dùng người dùng, thay dùng chức có ứng dụng xây dựng Server: có tồn quyền hiển thị, cập nhật thay đổi thông tin nhiều người dùng Qua đảm bảo an tồn thơng tin họ 43 Mục đích xây dựng Đáp ứng nhu cầu trao đổi thông tin trực tuyến ngày rộng rãi tiện lợi, xây dựng nên môi trường thân thiện thoải mái 3.1 Xác định yêu cầu người dùng Hệ thống hoạt động chat room Hiện chat room sử dụng cách dễ dàng hữu dụng với người dùng Người dùng nhắn tin qua lại trao đổi thông tin trò chuyện hay làm điều khác mà từ chức hệ thống cung cấp Chuyển thơng tin cách nhanh chóng khơng gặp vấn đề khác 3.2 Hệ thống đề nghị Giao diện người dùng Có giao diện đơn giản dễ sử dụng Hiển thị hết ưu điểm ứng dụng Nhiều chức tiện dụng Giao diện kết nối dễ hiểu, dễ thao tác chuột Giao diện server Đơn giản dễ quản lý thiếu: hiển thị, lưu trữ, cập nhật thông tin người dùng 4.1 Yêu cầu giao diện Giao diện người dùng: Phải có giao diện đơn giản 4.2 Giao diện người quản trị: Giao diện đơn giản, dễ nhìn, khơng bắt mắt q dễ quản lý liệu 44 Phân tích chức hệ thống Biểu đồ phân tích thiết kế hệ thống 6.1.Biểu đồ Use-case 6.2 Biểu đồ chức Biểu đồ chức Client Biểu đồ chức Server 45 Thiết kế giao diện chức 7.1 Giao diện Server Frame Giao diện dùng để quản lý hiển thị tất thông tin người dùng Hiển thị giao diện đơn giản, dễ sử dụng từ người dùng dễ tiếp cận để lại ấn tượng tốt Ở người dùng tạo port riêng tùy chọn bắt đầu hay dừng kết nối với Server Server Frame chạy sau 46 7.2 Giao diện Chat Connect Server Giao diện thiết lập để kết nối người dùng, liên kết người dùng vào phòng chat qua port thiết lập Server Frame, sau đặt tên theo ý người dùng tham gia Giao diện người dùng thứ lưu lại 47 Giao diện người dùng thứ hai dã kết nối bên ô danh sách người dùng có hiển thị thêm người dùng thứ (TQuynh) online 7.3 Giao diện Chat Frame Sau hai người dùng đồng ý kết nối với xuất giao diện messenger hình 48 Có thể gửi icon hình ảnh ký tự bàn phím 50 KẾT LUẬN Đề tài “Xây dựng ứng dụng chat room sử dụng giao thức socket UDP” thực tạo nhằm hiển thị ứng dụng nhỏ để tạo nên tảng chat room lớn hoàn hảo hơn, thấy cần thiết tiện dụng tới với người dùng tạo Mặc dù có nhiều cố gắng, tìm hiểu kiến thức học từ giảng viên người trước song song kết hợp tra cứu tài liệu phương tiện truyền thông trang mạng hạn chế mặt thời gian, khả kinh nghiệm nên khơng tránh khỏi thiếu sót định nên đề tài hồn thành mức độ: Tìm hiểu kỹ kiến thức mạng máy tính, khái niệm socket để từ xây dựng nên ứng dụng thực tế xây dựng ứng dụng chat room sử dụng giao thức socket UDP Để hoàn thành đề tài này, lần em xin chân thành cảm ơn thầy giáo TS Hoàng Hữu Đức người quan tâm, giúp đỡ nhóm chúng em hồn thành tốt Em xin chân thành cảm ơn! 51 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] Giáo trình lập trình mạng – Học Viện Bưu Chính Viễn Thơng Advanced Network Progaming – Principles and Techniques Kỹ Thuật Lập Trình UDP Socket Lập Trình Ứng Dụng UDP Socket Java Lập Trình Socket Phi Kết Nối (UDP) Fptcloud.com Wiki.matbao.net 52 ... chương trình sử dụng để giao tiếp với ngăn xếp giao thức, sử dụng network socket, gọi API socket Việc phát triển chương trình ứng dụng sử dụng API gọi lập trình network socket lập trình mạng API... thức mạng máy tính, khái niệm socket để từ xây dựng nên ứng dụng thực tế xây dựng ứng dụng chat room sử dụng giao thức socket UDP Để hoàn thành đề tài này, lần em xin chân thành cảm ơn thầy giáo... 42 Chương 4 :Xây dựng ứng dụng thực tế Trong chương phân tích yêu cầu đề tài việc tóm tắt hoạt động hệ thống mà dự án ứng dụng, phạm vi ứng dụng đề tài đối tượng sử dụng, mục đích dự án Xác định