Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
2,89 MB
Nội dung
ĐẠI HỌC KHOA HỌC TỰ NHIÊN ĐẠI HỌC QUỐC GIA TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC MẠNG MÁY TÍNH LẬP TRÌNH SOCKET Giảng viên hướng dẫn Lê Hà Minh Lê Giang Thanh Sinh viên thực Nguyễn Nhật Phi 21127132 Fa Ngọc Uyển Nhi 21127661 Trần Đại Niên 21127664 Ngày 10 tháng năm 2022 Lập trình Socket Khoa Cơng nghệ Thơng tin LỜI CẢM ƠN Chúng em xin chân thành cảm ơn thầy Lê Hà Minh, thầy Lê Giang Thanh giảng dạy bọn em suốt học kì vừa qua góp ý, đưa lời khuyên giúp đồ án bọn em hồn thiện Trong q trình thực đồ án chúng em khơng thể tránh khỏi sai sót chưa có đủ kinh nghiệm, chúng em mong nhận ý kiến đóng góp thầy, để chúng em học hỏi thêm nhiều điều thực đồ án sau tốt TP Hồ Chí Minh Ngày 10 tháng năm 2022 Page Lập trình Socket Khoa Cơng nghệ Thơng tin Mục lục Đánh giá mức độ hoàn thành Kịch giao tiếp chương trình 2.1 Giao thức 2.2 Giao tiếp Client-Server 2.3 Tổ chức sở liệu Mơi trường lập trình, ngơn ngữ lập trình thư viện 3.1 Mơi trường lập trình 3.2 Ngơn ngữ lập trình sử dụng: PYTHON 10 3.3 Các thư viện sử dụng 11 Cây chức 12 Hướng dẫn sử dụng tính chương trình 13 5.1 Trang chủ 13 5.2 Chức xem thực đơn 13 5.3 Chức đặt thức ăn 15 5.4 Chức toán 17 5.5 Chức yêu cầu xem lại, thay đổi đơn đặt hàng 19 Phân công công việc 21 References 22 Page Lập trình Socket Khoa Cơng nghệ Thơng tin Danh sách hình vẽ Microsoft Visual Studio Code Python 10 Cây chức 12 Giao diện trang chủ 13 Trước truy cập vào thực đơn 13 Thực đơn 14 Thông tin ăn 14 Số lượng ăn 15 Giỏ hàng 15 10 Thông tin đơn hàng 16 11 Chức Undo 16 12 Tổng số tiền đơn hàng 17 13 Các hình thức toán 17 14 Hình thức tốn thẻ 18 15 Xác nhận toán 18 16 Sau xác nhận toán 19 17 Nhập ID để truy cập vào đơn hàng đặt trước 19 18 Loại bỏ ăn đặt 20 19 Đặt thêm ăn 20 Page Lập trình Socket Khoa Cơng nghệ Thơng tin Danh sách bảng Bảng phân công công việc 21 Page Lập trình Socket Khoa Cơng nghệ Thơng tin Đánh giá mức độ hoàn thành - Mức độ hoàn thành đồ án : 100% • Các chức hoàn thành: ✓ Xem thực đơn □ ✓ Đặt thức ăn □ ✓ Thanh toán □ ✓ Cho phép hiển thị minh họa hình ảnh thức ăn client □ ✓ Client phép gửi yêu cầu đặt thêm ăn cho server trước tiếng đơn hàng □ ✓ Quản lý liệu server file có cấu trúc JSON □ ✓ Hỗ trợ nhiều client truy cập đồng thời đến server □ Page Lập trình Socket Khoa Cơng nghệ Thơng tin Kịch giao tiếp chương trình 2.1 Giao thức - Giao thức TCP - TCP (Transmission Control Protocol) 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 tập hợp quy tắc trình tự kiểm sốt việc thực truyền liệu cho tất người giới vị trí địa lý, ứng dụng, phần mềm họ sử dụng thao tác theo phương thức giống gọi TCP - TCP thường kết hợp với IP (Giao thức Internet) theo cặp gọi TCP/IP Bạn bắt gặp cụm thuật ngữ phần network setting máy tính, điện thoại thơng minh thiết bị cầm tay IP xử lý việc gán địa chuyển tiếp gói tin từ nguồn đến đích TCP kiểm soát độ tin cậy truyền dẫn 2.2 Giao tiếp Client-Server - Khi client sử dụng ứng dụng ứng dụng kết nối với server giao thức TCP tải thông tin cần thiết từ server (hình ảnh ăn, thơng tin ăn, ) để tạo UI (giao diện người dùng) cho client thực kết nối hịan tất, client hồn thành việc đặt đơn hàng tốn, thơng tin chuyển từ client đến server giao thức TCP ngược lại 2.3 Tổ chức sở liệu a) Tổ chức sở liệu sử dụng - Quản lí sở liệu server file JSON: • orderData.json: Chứa thơng tin ăn mà khách hàng đặt • foodData.json: Chứa thơng tin ăn b) Giới thiệu JSON - JSON viết tắt JavaScript Object Notation, kiểu định dạng liệu tuân theo quy luật định mà hầu hết ngơn ngữ lập trình đọc JSON tiêu chuẩn mở để trao đổi liệu web - Các lập trình viên hiểu Json giống việc sử dụng cặp key – value để sử dụng liệu Nó hồn tồn hỗ trợ cho cấu trúc liệu đối tượng mảng Một ví dụ cho Json gì, ta lấy tệp tin có tên timviec_info.Json Thì có nội dung dùng fomat kiểu Json phục vụ lưu trữ thơng tin: Page Lập trình Socket Khoa Cơng nghệ Thông tin { “name” : “timviec”, “title” : “Việc làm IT cho dân Developer”, “description” : “là hệ sinh thái bao gồm cộng đồng Developer.” } - Nhìn vào đoạn thơng tin này, ta thấy rõ cú pháp Json bao gồm phần riêng việt Key Value tách biệt rõ rệt Json ban đầu thiết kế để phục vụ cho ứng dụng viết JavaScript Object Notation Nhưng thực tế, Json định dạng liệu nên sử dụng ngôn ngữ mà không bị giới hạn Đây giải đáp thực tế Json Cấu trúc Json liên quan đến tất điều Page Lập trình Socket Khoa Cơng nghệ Thơng tin Mơi trường lập trình, ngơn ngữ lập trình thư viện 3.1 Mơi trường lập trình - Mơi trường lập trình: Microsoft Visual Studio Code Hình 1: Microsoft Visual Studio Code - Microsoft Visual Studio Code môi trường phát triển tích hợp (IDE) từ Microsoft Microsoft Visual Studio cịn gọi "Trình soạn thảo mã nhiều người sử dụng giới " Page Lập trình Socket 3.2 Khoa Cơng nghệ Thơng tin Ngơn ngữ lập trình sử dụng: PYTHON a) Giới thiệu PYTHON Hình 2: Python - Python ngơn ngữ cũ tạo Guido Van Rossum Thiết kế bắt đầu vào cuối năm 1980 phát hành lần vào tháng năm 1991 - Python ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ Nó dễ dàng để tìm hiểu lên ngôn ngữ lập trình nhập mơn tốt cho người lần đầu tiếp xúc với ngơn ngữ lập trình Python hồn tồn tạo kiểu động sử dụng chế cấp phát nhớ tự động Python có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Cú pháp lệnh Python điểm cộng vô lớn rõ ràng, dễ hiểu cách gõ linh động làm cho nhanh chóng trở thành ngơn ngữ lý tưởng để viết script phát triển ứng dụng nhiều lĩnh vực, hầu hết tảng - Các tính Python: • Ngơn ngữ lập trình đơn giản dễ học • Miễn phí, mã nguồn mở • Khả di chuyển • Khả mở rộng nhúng • Ngơn ngữ thơng dịch cấp cao • Thư viện tiêu chuẩn lớn để giải tác vụ phổ biến • Hướng đối tượng Page 10 Lập trình Socket 3.3 Khoa Cơng nghệ Thông tin Các thư viện sử dụng - Requests: module Python mà bạn sử dụng để gửi tất loại yêu cầu HTTP Đây thư viện dễ sử dụng với nhiều tính khác nhau, từ việc truyền tham số URL gửi header tùy biến xác minh SSL - Socket: module socket Python giúp thực kết nối client server để giao tiếp máy với - Os: cung cấp chức sử dụng để tương tác với hệ điều hành có thơng tin liên quan OS theo Module tiện ích tiêu chuẩn Python Module cung cấp cách linh động sử dụng chức phụ thuộc vào hệ điều hành Module os python cho phép làm việc với tập tin thư mục - Time: module time dùng để xử lý tác vụ liên quan đến thời gian - Json: Python xây dựng sẵn module json để làm việc với JSON như: mở, đọc file JSON - Pickle: Pickle sử dụng để thực chuyển đổi cấu trúc đối tượng Python sang dạng byte để lưu trữ ổ đĩa gửi qua mạng Sau đó, luồng ký tự sau truy xuất chuyển đổi trở lại sang dạng đối tượng ban đầu Python - Tkinter: Tkinter thư viện GUI tiêu chuẩn cho Python Tkinter Python cung cấp cách nhanh chóng dễ dàng để tạo ứng dụng GUI Tkinter cung cấp giao diện hướng đối tượng cho công cụ Tk GUI - PIL: Sử dụng thư viện Pillow (PIL Fork) để tiến hành thao tác xử lý hình ảnh đơn giản resize, crop, rotate - Threading: Module threading thư viện chuẩn Python cung cấp cho class function để làm việc với thread, cung cấp chế để đồng luồng, bao gồm: Thread, Lock, RLock, Condition, Semaphore,Event, Page 11 Lập trình Socket Khoa Cơng nghệ Thơng tin Cây chức - Cây chức mô tả cách tổng quan bước sử dụng ứng dụng Hình 3: Cây chức Page 12 Lập trình Socket Khoa Cơng nghệ Thơng tin Hướng dẫn sử dụng tính chương trình 5.1 Trang chủ - Mơ tả: Trang chủ thiết kế đơn giản, tạo cảm giác gần gũi, dễ sử dụng cho khách hàng Hình 4: Giao diện trang chủ 5.2 Chức xem thực đơn - Mô tả: Sau nhấn vào nút “Show Food Menu”, cửa sổ "Your Order ID"1 ra, khách hàng đặt ăn lần đầu cần bỏ trống nhấn nút "Confirm" Hình 5: Trước truy cập vào thực đơn Cửa sổ "Your Order ID" dùng cho khách hàng sau đặt hàng toán muốn xem lại đơn hàng thay đổi đơn hàng tốn trước đó, thơng qua việc điền ID server cung cấp(chức mơ tả mục sau) Page 13 Lập trình Socket Khoa Công nghệ Thông tin - Mô tả: Thực đơn với hình ảnh thức ăn xuất Các hình ảnh ăn trình bày theo dạng cuộn dọc Hình 6: Thực đơn - Mơ tả: Khi click vào hình ảnh ăn bất kì, thơng tin ăn (thơng tin gồm có: ngun liệu, cách chế biến, giá tiền ) Hình 7: Thơng tin ăn Page 14 Lập trình Socket 5.3 Khoa Cơng nghệ Thơng tin Chức đặt thức ăn - Mô tả: Tại ô “Quantity”, khách hàng nhập số lượng mong muốn click "Order" ăn vào giỏ hàng Hình 8: Số lượng ăn - Mơ tả: Sau chọn xong thức ăn, khách hàng click vào biểu tượng giỏ hàng (nút toán) để tiến hành đặt thức ăn Hình 9: Giỏ hàng Page 15 Lập trình Socket Khoa Cơng nghệ Thơng tin - Mơ tả: Sau nhấn nút tốn, chương trình hiển thị lên cửa sổ chứa ăn mà khách hàng đặt Hình 10: Thơng tin đơn hàng - Mơ tả: Khách hàng hủy bỏ lựa chọn cách nhấn vào nút "Undo" Hình 11: Chức Undo Page 16 Lập trình Socket 5.4 Khoa Cơng nghệ Thơng tin Chức tốn - Mô tả: Sau xác nhận, khách hàng xem tổng số tiền đơn hàng Hình 12: Tổng số tiền đơn hàng - Mô tả: Khách hàng lựa chọn hình thức tốn: tiền mặt (Paid by cash) toán thẻ (Paid by credit card) Hình 13: Các hình thức tốn Page 17 Lập trình Socket Khoa Cơng nghệ Thơng tin - Mơ tả: Khách hàng chọn hình thức toán thẻ (Paid by credit card), ứng dụng hiển thị cửa sổ cho phép khách hàng điền mã thẻ, mẽ thẻ gồm 10 ký số xem hợp lệ Hình 14: Hình thức tốn thẻ - Mơ tả: Sau chọn hình thức toán, khách hàng nhấn vào nút "Confirm" để hoàn thành đơn đặt hàng chuẩn bị thưởng thức ăn Hình 15: Xác nhận tốn Page 18 Lập trình Socket Khoa Cơng nghệ Thơng tin - Mơ tả: Khi tốn thành cơng, ứng dụng hiển thị cửa sổ cảm ơn kèm theo ID khách hàng Ứng dụng tắt khách hàng hoàn thành đơn đặt hàng Hình 16: Sau xác nhận toán 5.5 Chức yêu cầu xem lại, thay đổi đơn đặt hàng - Mô tả: Nếu khách hàng muốn xem lại danh sách ăn đặt muốn thay đổi đơn đặt hàng cần khởi động lại ứng dụng theo bước hướng dẫn Dựa vào ID server cung cấp khách hàng cần điền ID vào cửa sổ "Your Order ID" ứng dụng lên đơn hàng khách hàng đặt trước Lúc khách hàng xem lại đặt thực thay đổi theo ý muốn Hình 17: Nhập ID để truy cập vào đơn hàng đặt trước Page 19 Lập trình Socket Khoa Cơng nghệ Thơng tin - Mơ tả: Khách hàng "Undo" để loại bỏ ăn, thêm ăn Hình 18: Loại bỏ ăn đặt - Mơ tả: Khách hàng đặt thêm ăn Hình 19: Đặt thêm ăn - Sau xác nhận đơn đặt hàng khách hàng toán theo bước hướng dẫn Page 20 Lập trình Socket Khoa Cơng nghệ Thơng tin Phân cơng cơng việc - Nhóm trưởng: Trần Đại Niên - 21127664 - Thành viên: Nguyễn Nhật Phi - 21127132; Fa Ngọc Uyển Nhi - 21127661 - Bảng phân công công việc: STT MSSV Họ tên Chi tiết công việc Phần trăm công việc - Thiết kế giao diện trang chủ - Thiết kế menu - Lập trình giao diện trang chủ 21127132 Nguyễn Nhật Phi - Thiết kế cửa sổ tốn 30% - Lập trình xóa ăn đặt - Lập trình hiển thị cửa sổ cảm ơn - Báo cáo - Tìm kiếm hình ảnh ăn - Lập trình hiển thị hình ảnh ăn - Thiết kế cấu trúc liệu cho server (thơng tin ăn thơng tin khách 21127661 Fa Ngọc Uyển Nhi hàng đặt món) 30% - Soạn nội dung mơ tả chi tiết ăn - Lập trình hiển thị thơng tin ăn - Xử lí file JSON(thêm xóa liệu) - Báo cáo - Lập trình tạo kết nối TCP - Lập trình tạo kết nối đa luồng - Lập trình cấu trúc menu - Lập trình hiển thị hóa đơn 21127664 Trần Đại Niên - Lập trình phần tốn 40% - Lập trình hiển thị cửa sổ kiểm tra số tài khoản - Lập trình gửi file từ server qua cho client ngược lại Bảng 1: Bảng phân cơng cơng việc Page 21 Lập trình Socket Khoa Công nghệ Thông tin Tài liệu [1] Tkinter Course - Create Graphic User Interfaces in Python Tutoria [online] Available at: https://www youtube.com/watch?v=YXPyB4XeYLA&t=617s [2] Python GUI Programming With Tkinter – Real Python [online] Available at: https://realpython com/python-gui-tkinter/ [3] How to Transfer Files in the Network using Sockets in Python - Python Code [online] Available at: https://www.thepythoncode.com/article/send-receive-files-using-sockets-python [4] python 3.x - tkinter doesn’t open image via function - Stack Overflow [online] Available at: https: //stackoverflow.com/questions/63966028/tkinter-doesnt-open-image-via-function [5] Create UI using Tkinter in Python [online] Available at: https://www.tutorialsteacher.com/ python/create-gui-using-tkinter-python [6] JSON [online] Available at: https://topdev.vn/blog/json-la-gi/ [7] Module Requests [online] Available at: https://code.tutsplus.com/vi/tutorials/ using-the-requests-module-in-python cms-28204 [8] Module Socket [online] Available at: https://toidicode.com/ lap-trinh-mang-voi-module-socket-trong-python-364.html [9] Module OS [online] Available at: https://viettuts.vn/python/mo-dun-os-trong-python [10] Module Threading [online] Available at: https://viblo.asia/p/ da-luong-trong-python-multithreading-WAyK8MO6ZxX [11] Microsoft Visual Studio Code [online] Available at: https://vi.wikipedia.org/wiki/Microsoft_ Visual_Studio [12] PYTHON [online] Available at: https://tuhoclaptrinh.edu.vn/lap-trinh-python-la-gi-262 html [13] TCP protocol [online] Available at: https://bizflycloud.vn/tin-tuc/ tcp-la-gi-20181022170658844.htm Page 22 ... liên quan đến tất điều Page Lập trình Socket Khoa Cơng nghệ Thơng tin Mơi trường lập trình, ngơn ngữ lập trình thư viện 3.1 Mơi trường lập trình - Mơi trường lập trình: Microsoft Visual Studio... chi tiết ăn - Lập trình hiển thị thơng tin ăn - Xử lí file JSON(thêm xóa liệu) - Báo cáo - Lập trình tạo kết nối TCP - Lập trình tạo kết nối đa luồng - Lập trình cấu trúc menu - Lập trình hiển thị... menu - Lập trình giao diện trang chủ 21127132 Nguyễn Nhật Phi - Thiết kế cửa sổ toán 30% - Lập trình xóa ăn đặt - Lập trình hiển thị cửa sổ cảm ơn - Báo cáo - Tìm kiếm hình ảnh ăn - Lập trình