Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
5,26 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH REMOTE DESKTOP Sinh viên thực : HỒ ĐÌNH CẢNH Mã sinh viên : 19IT144 Lớp : 19IT3 Giảng viên hướng dẫn : ThS NGUYỄN ĐỖ CÔNG PHÁP Đà Nẵng, tháng 11 năm 2021 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN BÁO CÁO ĐỒ ÁN CƠ SỞ ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH REMOTE DESKTOP Sinh viên thực : HỒ ĐÌNH CẢNH Mã sinh viên : 19IT144 Lớp : 19IT3 Giảng viên hướng dẫn : ThS NGUYỄN ĐỖ CÔNG PHÁP Đà Nẵng, tháng 11 năm 2021 MỞ ĐẦU Ngày nay, nước ta có bước phát triển mạnh mẽ, trở thành kinh tế hội nhập, động, hấp dẫn đầu tư khu vực Với phát triển không ngừng khoa học công nghệ, đặc biệt ngành công nghệ thông tin làm cho sống người ngày trở nên dễ dàng, thuận tiện Trong bối cảnh phát triển hội nhập quốc tế, với phát triển mạnh mẽ cách mạng công nghiệp 4.0, Việt Nam xác định tập trung phát triển công nghệ thông tin lĩnh vực mũi nhọn Công nghệ thông tin vào nhiều lĩnh vực sống, giúp giảm nhiều công sức lao động Hiện nay, việc quản lý nhóm máy tính nội cơng ty, hay trường học Nhất tổ chức, việc tạo lập máy chủ quản lý máy tính để quản lý góp phần khơng nhỏ việc phát triển tổ chức Với chức người dùng quản lý lúc nhiều máy tính từ máy tính đến nhiều máy đặt nơi khác kết nối điều khiển máy tính cách dễ dàng Vì lý đó, để góp phần cơng sức vào việc quản lý nay, em chọn đề tài “Xây dựng chương trình remote desktop python” để cần, sử dụng giọng nói để điều khiển thiết bị thơng minh điện thoại, laptop, tivi… Với chương trình này, máy chủ kết nối tới máy tính nội bộ, điều khiển cách dễ dàng mà không cần đến máy tính để điều khiển LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian kể từ nghiên cứu đề tài đến nay, em nhận nhiều quan tâm, giúp đỡ quý Thầy Cô, gia đình bạn bè.Em xin chân thành cảm ơn Ban Giám Hiệu Trường Đại Học Công Nghệ Thông Tin Việt-Hàn, tạo điều kiện cho chúng em làm đồ án Em xin chân thành cảm ơn Thầy Nguyễn Đỗ Công Pháp tận tâm hướng dẫn em tất tâm huyết mình, tạo điều kiện cho chúng em làm đề tài đóng góp ý kiến cho em suốt thời gian làm đề tài Làm việc với thầy em học hỏi nhiều điều bổ ích để áp dụng vào cơng việc mai sau sống hàng ngày Do thời gian thực kiến thức hạn chế nên dù cố gắng cịn nhiều thiếu sót trình thực đề tài, mong bổ sung đóng góp thầy bạn Đà Nẵng, ngày 20 tháng 11 năm 2021 Sinh Viên Hồ Đình Cảnh NHẬN XÉT (Nhận xét giảng viên hướng dẫn) Đà Nẵng, ngày … tháng năm 2021 Giảng viên hướng dẫn ThS Nguyễn Đỗ Công Pháp MỤC LỤ TỔNG QUAN ĐỀ TÀI 1 Giới thiệu/ lý chọn đề tài Mục tiêu đề tài Nội dung đề tài Yêu cầu chức Bố cục đề tài CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ SOCKET 1.2 NGƠN NGỮ LẬP TRÌNH PYTHON CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 12 2.1 MÔ TẢ TỔNG QUAN .12 2.2 CÁC YÊU CẦU GIAO TIẾP NGOÀI 13 2.3 CÁC TÍNH NĂNG CỦA HỆ THỐNG .14 2.4 BIỂU ĐỒ USE CASE .15 2.5 SƠ ĐỒ BIỂU DIỄN QUÁ TRÌNH XỬ LÝ CHỨC NĂNG 15 2.6 XỬ LÝ KẾT NỐI 15 2.7 XỬ LÝ GỬI FILE .16 2.8 XỬ LÝ ĐIỀU KHIỂN CLIENT .16 CHƯƠNG 3: GIỚI THIỆU CHƯƠNG TRÌNH VÀ KẾT LUẬN 17 3.1 CHỨC NĂNG CỦA CHƯƠNG TRÌNH 17 3.2 GIAO DIỆN CỦA CHƯƠNG TRÌNH 17 3.3 KẾT LUẬN 20 3.4 HƯỚNG PHÁT TRIỂN 20 TÀI LIỆU THAM KHẢO .21 DANH MỤC HÌNH Hình 1.1 Mơ hình OSI dạng rút gọn Hình 1.2 Một số cổng dịch vụ Hình 1.3 Client-Server UDP Hình 1.4 Trao đổi thơng tin Client-Server Hình 1.5 UDP Hình 1.6 Phiên làm việc UDP Hình 1.7 Cấu trúc UDP header Hình 1.8 Python Hình 1.9 Ứng dụng Python .10 Hình 1.10 PyCharm 11 Hình 2.1 Sơ đồ hoạt động tổng quát 13 Hình 2.2 Biểu đồ Use case .15 Hình 2.3 Xử lý Client Server 15 Hình 2.4 Client kết nối đến Server 15 Hình 2.5 Xử lý gửi file 16 Hình 2.6 Điều khiển Client 16 Hình 3.1 Giao diện Server .17 Hình 3.2 Giao diện Client 17 Hình 3.3 Giao diện điều khiển Client 18 Hình 3.4 Thông báo Client điều khiển 18 Hình 3.5 Gửi lệnh tới Client 19 Hình 3.6 Gửi file tới Client 19 Hình 3.7 Gửi file tới tất client .20 DANH MỤC BẢNG Bảng 2-1 Chức Server 12 Bảng 2-2 Yêu cầu thực lệnh .14 Bảng 2-3 Điều khiển hình client .14 Bảng 2-4 Gửi file đến Client 14 DANH SÁCH CÁC TỪ VIẾT TẮT STT Từ viết tắt UDP OSI IP HTTP TCP FTP IDE Ý nghĩa User Datagram Protocol Open Systems Interconnection Internet Protocol HyperText Transfer Protocol Transmission Control Protocol File Transfer Protocol Integrated Development Environment - TCP tận dụng số phiên (session ID) để trì kết nối hai host: UDP không hỗ trợ phiên chất phi kết nối - Độ tin tưởng: UDP khơng rằng có số liệu tới đích Để gửi thơng số tới hệ thống cuối, UDP phân chia thông số thành đoạn nhỏ UDP không rằng đoạn đến đích thứ tự chúng tạo nguồn Ngược lại, TCP tận dụng số thứ tự với số hiệu cổng gói tin xác thực liên tục, điều chắn gói tin đến đích thứ tự mà tạo - Bảo mật: TCP có tính bảo mật cao UDP Trong nhiều tổ chức, firewall router cấm gói tin UDP, điều hacker thường dùng cổng UDP - Kiểm sốt luồng: UDP khơng có kiểm sốt luồng; kết là, phần mềm UDP có thiết kế tồi hồn tồn làm giảm băng thông mạng 1.1.7 Giao thức UDP: Giao thức UDP hoạt động tương tự TCP, bỏ qua trình kiểm tra lỗi Khi ứng dụng sử dụng giao thức UDP, gói tin gửi cho bên nhận bên gửi chờ để đảm bảo bên nhận nhận gói tin, lại tiếp tục gửi gói tin Nếu bên nhận bỏ lỡ vài gói tin UDP, họ bên gửi khơng gửi lại chúng Do thiết bị giao tiếp nhanh Hình 1.6 Phiên làm việc UDP Hình 1.7 Cấu trúc UDP header - Source port: Số cổng thiết bị gửi Trường đặt máy tính đích đến khơng cần trả lời người gửi - Destination port: Số cổng thiết bị nhận Length: Xác định chiều dài toàn datagram: phần header liệu Chiều dài tối thiểu byte gói tin khơng có liệu, có header - Checksum: Kiểm tra lỗi phần header liệu 1.2 NGƠN NGỮ LẬP TRÌNH PYTHON 1.2.1 Giới thiệu ngơn ngữ lập trình Python - Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 Python thiết kế với ưu điểm mạnh dễ đọc, dễ học dễ nhớ Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình Cấu trúc Python cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu - Python hỗ trợ mơ-đun gói, điều khuyến khích tái sử dụng mã Trình thơng dịch Python thư viện tiêu chuẩn mở rộng có sẵn dạng nguồn mở nhị phân miễn phí cho tất tảng phân phối miễn phí - Ngồi ra, ngơn ngữ lập trình Python tạo với kiểu động, sử dụng chế cấp phát nhớ tự động, cấu trúc liệu vô mạnh mẽ, cách tiếp cận đơn giản lại mang đến hiệu tốt lập trình hướng đối tượng - Thơng thường, lập trình viên u thích Python gia tăng suất mà mang lại Vì khơng có bước biên dịch, chu trình chỉnh sửa, kiểm tra, gỡ lỗi nhanh Gỡ lỗi chương trình Python dễ dàng, lỗi đầu vào không tốt không gây lỗi phân đoạn Thay vào đó, trình thơng dịch phát lỗi, tạo ngoại lệ Khi chương trình khơng bắt ngoại lệ, trình thơng dịch in dấu vết ngăn xếp Trình gỡ lỗi cấp nguồn cho phép kiểm tra biến cục toàn cục, đánh giá biểu thức tùy ý, thiết lập điểm ngắt, lướt qua dòng mã thời điểm - Đặc điểm ngôn ngữ Python: + Là ngôn ngữ đơn giản, dễ học, dễ hiểu + Vừa hướng thủ tục, vừa hướng đối tượng + Hỗ trợ module hỗ trợ gói, thư viện + Xử lý lỗi ngoại lệ + Có thư viện chuẩn, đáp ứng tất nhu cầu lập trình + Có khả tương tác với module khác + Các chương trình Python chạy đa tảng + Có khả mở rộng kết hợp với ngôn ngữ khác + Viết code Hình 1.8 Python 1.2.2 Ứng dụng ngơn ngữ lập trình Python - Lập trình ứng dụng web: Vài tảng phổ biến để tạo web app là: Django, Flask, Pyramid, Plone, Django CMS Các trang Mozilla, Reddit, Instagram PBS viết Python - Khoa học tính tốn: Có nhiều thư viện Python cho khoa học tính tốn số liệu, SciPy NumPy, sử dụng cho mục đích chung chung tính tốn Và có thư viện cụ thể như: EarthPy cho khoa học trái đất, AstroPy cho Thiên văn học Ngoài ra, Python sử dụng nhiều machine learning, khai thác liệu deep learning - Tạo nguyên mẫu phần mềm: Python ngôn ngữ tuyệt vời để tạo nguyên mẫu (bản chạy thử - prototype) Ví dụ, bạn sử dụng Pygame (thư viện viết game) để tạo ngun mẫu game trước Nếu thích ngun mẫu dùng C++ để viết game thực - Ngơn ngữ tốt để dạy lập trình: Python nhiều cơng ty, trường học sử dụng để dạy lập trình cho trẻ em người lần đầu học lập trình Bên cạnh tính khả tuyệt vời cú pháp đơn giản dễ sử dụng lý cho việc Hình 1.9 Ứng dụng Python 10 1.2.3 Mơi trường lập trình PyCharm - Pycharm tảng kết kết hợp JetBrains phát triển IDE (Môi trường phát triển tích hợp) để phát triển ứng dụng cho lập trình Python Một số ứng dụng lớn Tweeter, Facebook, Amazon Pinterest sử dụng Pycharm để làm IDE Python họ Hình 1.10 PyCharm - Pycharm chạy Windows, Linux, Mac OS Ngồi ra, chứa Mơ đun gói giúp lập trình viên phát triển phần mềm Python thời gian ngắn với cơng sức Hơn nữa, có khả tùy chỉnh theo yêu cầu nhà phát triển - Khi cài đặt Pycharm, LTV sử dụng số tính sau: + Trình chỉnh sửa mã thơng minh + Giúp lập trình viên viết mã chất lượng cao + Bao gồm lược đồ màu cho từ khóa, lớp hàm + Xác định lỗi cách dễ dàng + Cung cấp tính tự động hồn thiện hướng dẫn hoàn thiện mã + Giúp nhà phát triển việc chỉnh sửa mã với nỗ lực thời gian + Nhà phát triển dễ dàng điều hướng lớp, hàm tệp + Có thể xác định vị trí phần tử, mã nguồn thời gian ngắn + Nhà phát triển kiểm tra gỡ lỗi toàn mã nguồn + Thay đổi hiệu nhanh chóng biến cục biến toàn cục + Cải thiện cấu trúc bên mà khơng thay đổi hiệu suất bên ngồi mã + PyCharm cho phép phân chia lớp với chức mở rộng 11 CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 MÔ TẢ TỔNG QUAN 2.1.1 Các Actor - Máy client Máy server 2.1.2 Đặc điểm Actor - Máy client: Chỉ bật ứng dụng phía client để kết nối với server Máy server: Gửi yêu cầu để client trả lời, điều khiển hình máy client 2.1.3 Chức Server Bảng 2-1 Chức Server STT CHỨC NĂNG Gửi lệnh client Gửi lệnh đến tồn client Xem cấu hình mạng client Khởi chạy điều khiển máy tính từ xa Gửi file 2.1.4 Các thư viện dùng chương trình 2.1.5 - Socket: Thư viện hỗ trợ kết nối Struct: Để lưu trữ mục Sys: Cung cấp hàm biến PyQt5: Hỗ trợ xây dựng giao diện Pyautogui: Hỗ trợ điều khiển chuột Mouse: Hỗ trợ điều khiển chuột Threading: Hỗ trợ tạo luồng thực thi PIL: Lấy ảnh hình máy tính win32api: Hỗ trợ bắt kiện bàn phím Subprocess: Hỗ trợ chạy lệnh khác từ Python Các bước xây dựng chương trình Bước 1: Tìm hiểu tài liệu, chức điều khiển máy tính từ xa Bước 2: Suy nghĩ chức Bước 3: Download cơng cụ hỗ trợ lập trình 12 - Bước 4: Chuẩn bị thư viện cần thiết cài đặt Bước 5: Tạo project import thư viện Bước 6: Tiến hành lập trình Bước 7: Xây dựng chức Bước 8: Xây dựng giao diện Bước 9: Đưa chương trình vào khởi động máy tính 2.1.6 Sơ đồ hoạt động tổng quát: Sau chạy chương trình phía Server, client mở ứng dụng tự động kết nối đến server Trên server hiển thị danh sách client kết nối, server yêu cầu lệnh điều khiển hình máy tính client Hình 2.11 Sơ đồ hoạt động tổng quát 2.2 CÁC YÊU CẦU GIAO TIẾP NGOÀI 2.2.1 Giao diện server - Giao diện đơn giản dễ sử dụng - Giao diện gồm phần: Phần hiển thị danh sách client kết nối, phần hiển thị trả client phần thực chức 2.2.2 Giao tiếp phần mềm - Chạy tất phiên hệ điều hành Windows - Ngôn ngữ Python sử dụng để lập trình (được thực thi PyCharm 2021.3) 13 2.3 CÁC TÍNH NĂNG CỦA HỆ THỐNG 2.3.1 Yêu cầu thực lệnh Bảng 2-2 Yêu cầu thực lệnh Tên tính Thực lệnh tương tự chạy lệnh CMD Tiền điều kiện Không Nội dung Cách xử lý Kết Có thể yêu cầu client chạy lệnh CMD trả server Server nhập lệnh cần thực ô trống: - Nếu server nhấn nút send, yêu cầu gửi đến client định - Nếu server nhấn nút “Send all”, yêu cầu gửi đến toàn client Các client trả kết sau thực 2.3.2 Điều khiển hình client Bảng 2-3 Điều khiển hình client Tên tính Điều khiển hình Tiền điều kiện Trình điều khiển mở trước phải đóng Nội dung Server kết nối đến hình client điều khiển Cách xử lý Nhấn nút remote server gửi yêu cầu kết nối đến client điều khiển hình client Server xem hình client điều khiển chuột bàn phím 2.3.3 Gửi file đến client Bảng 2-4 Gửi file đến Client Kết Tên tính Gửi file Tiền điều kiện Không Nội dung Server seẽ G ửi fle đếến Client toàn client Nhấn nút chọn file Sau nếu: - Nhấn “Send”: Server gửi đến Client định - Nhấn “Send all”: Server gửi file đến toàn Client Client nhận file hiển thị giao diện Cách xử lý Kết 14 2.4 BIỂU ĐỒ USE CASE Hình 2.12 Biểu đồ Use case 2.5 SƠ ĐỒ BIỂU DIỄN Q TRÌNH XỬ LÝ CHỨC NĂNG Hình 2.13 Xử lý Client Server 2.6 XỬ LÝ KẾT NỐI - Khi client mở chương trình, client tự động kết nối đến server Server bắt kết nối client client lên danh sách Hình 2.14 Client kết nối đến Server 15 2.7 XỬ LÝ GỬI FILE Hình 2.15 Xử lý gửi file 2.8 XỬ LÝ ĐIỀU KHIỂN CLIENT Hình 2.16 Điều khiển Client 16 CHƯƠNG 3: GIỚI THIỆU CHƯƠNG TRÌNH VÀ KẾT LUẬN 3.1 CHỨC NĂNG CỦA CHƯƠNG TRÌNH - Xây dựng chương trình cho phép nhiều client kết nối với server - Server điểu khiển nhiều client lệnh - Server điều khiển hình client - Server gửi file cho nhiều client - Server xem danh sách client - Client xem danh sách file gửi chọn chỗ lưu file 3.2 GIAO DIỆN CỦA CHƯƠNG TRÌNH 3.2.1 Giao diện chương trình Hình 3.17 Giao diện Server 3.2.2 Giao diện client 17 Hình 3.18 Giao diện Client 3.2.3 Giao diện điều khiển client Hình 3.19 Giao diện điều khiển Client Hình 3.20 Thơng báo Client điều khiển 3.2.4 Gửi lệnh tới tất client Nhập lệnh vào khung nhấn: - Send: Gửi lệnh tới client định - Send All: Gửi lệnh tới tất client 18 Hình 3.21 Gửi lệnh tới Client 3.2.5 Gửi file tới tất client Hình 3.22 Gửi file tới Client 19 Hình 3.23 Gửi file tới tất client 3.3 KẾT LUẬN - Chương trình có giao diện đơn giản, dễ dàng sử dụng Về đáp ứng số chức chương trình điều khiển máy tính từ xa - Hiểu rõ thêm lập trình mạng - Biết thêm thư viện thú vị Python - Tuy nhiên chưa nghiên cứu bảo mật thông tin 3.4 HƯỚNG PHÁT TRIỂN - Xây dựng chương trình hồn thiện với chức gửi file, truyền âm trực tiếp từ client đến server - Đưa chương trình vào sử dụng thực tế - Xây dựng hệ điều hành khác 20 TÀI LIỆU THAM KHẢO Awesome Python Repositories | PythonRepo Retrieved December 4, 2021, from https://pythonrepo.com/ Stack Overflow - Where Developers Learn, Share, & Build Careers Retrieved December 4, 2021, from https://stackoverflow.com/ PyPI · The Python Package Index Retrieved December 4, 2021, from https://pypi.org/ https://www.youtube.com/watch?v=LnvxObLYO-o&ab_channel=FinxterCreateYourCodingBusiness 3.10.0 Documentation Retrieved December 4, 2021, from https://docs.python.org/3/ Chương 19: CƠ CHẾ MULTICAST (Phần 1) - (2020, May 24) VnPro Retrieved December 4, 2021, from https://vnpro.vn/thu-vien/chuong-19-co-che-multicast-phan1-3447.html Giao thức UDP gì? UDP hoạt động Giao thức UDP gì? (2021, November 5) VinaHost Retrieved December 4, 2021, from https://blog.vinahost.vn/giao-thuc-udp-la-gi Python Tutorial W3Schools Retrieved December 4, 2021, from https://www.w3schools.com/python/ Trường Đại học Công nghệ Thông tin Truyền thông Việt Hàn - Đại học Đà Nẵng Retrieved December 4, 2021, from https://vku.udn.vn/tai-nguyen/phong-dao-tao/17mau-bao-cao-do-an-de-anthuc-tap.html 10 Trường Đại học Công nghệ Thông tin Truyền thông Việt Hàn - Đại học Đà Nẵng Retrieved December 4, 2021, from https://vku.udn.vn/tai-nguyen/phong-dao-tao/15huong-dan-trinh-bay-do-an-co-sothuc-tap.html 21