








Preview text:
I.
THÔNG TIN NHÓM ............................................................................................................................ 3 II.
PHÂN CÔNG CÔNG VIỆC VÀ HOÀN THÀNH .......................................................................... 3 III.
NỘI DUNG ĐỒ ÁN ......................................................................................................................... 3 1.
Kịch bản giao tiếp của chương trình: ............................................................................................... 3 1.1.
Giao thức trao đổi giữa Client và Server ................................................................................. 3 1.2.
Cấu trúc thông điệp .................................................................................................................. 3 1.3.
Kiểu dữ liệu của thông điệp: .................................................................................................... 4 2.
Môi trường lập trình và các framework hỗ trợ để thực thi ứng dụng: .............................................. 4 3.
Hướng dẫn sử dụng tính năng chương trình: .................................................................................... 4 4.
Bảng phân công công việc................................................................................................................ 9 5.
Tài liệu tham khảo ............................................................................................................................ 9 I. THÔNG TIN NHÓM:
Danh sách thành viên nhóm: 1. Vũ Hoàng Minh 23127427 2. Nguyễn Đăng Phôn 23127451 3. Nguyễn Nam Việt 23127517 II.
PHÂN CÔNG CÔNG VIỆC VÀ HOÀN THÀNH: III. NỘI DUNG ĐỒ ÁN:
1. Kịch bản giao tiếp của chương trình:
1.1. Giao thức trao đổi giữa Client và Server: - Chương trình 1:
Giao thức trao đổi giữa server và client: - Phía server:
• Kết nối và lắng nghe: Server lắng nghe các kết nối từ
Client trên địa chỉ IP và cổng được xác định.
• Gửi danh sách File: Server đọc danh sách file từ file
“text.txt” và gửi danh sách này tới Client
• Gửi file: Sau khi nhận yêu cầu từ client, server sẽ gửi dữ
liệu của file mà client cần. - Phía client:
• Client kết nối đến địa chỉ IP của server được nhập từ máy
chạy chương trình client.
• Client nhận danh sách file và in ra màn hình danh sách này.
• Client đọc tên các file từ “input.txt” để yêu cầu server gửi dữ liệu cho client.
• Xử lý Ctrl-C để thoát chương trình. - Chương trình 2:
Giao thức trao đổi giữa server và client: - Phía server:
• Kết nối và lắng nghe: Server lắng nghe các kết nối từ
Client trên địa chỉ IP và cổng được xác định.
• Gửi danh sách File: Server đọc danh sách file từ file
• Gửi file: Sau khi nhận yêu cầu từ client, server sẽ gửi dữ
liệu của file mà client cần. - Phía client:
• Client kết nối đến địa chỉ IP của server được nhập từ máy
chạy chương trình client.
• Client nhận danh sách file và in ra màn hình danh sách này.
• Mỗi 2 giây Client sẽ đọc tên các file từ
• Xử lý Ctrl-C để thoát chương trình
1.2. Cấu trúc thông điệp: - Chương trình 1: • Header (Phần đầu):
Địa chỉ IP và mã số cổng của server và client.
• Payload (Phần dữ liệu):
Data (Dữ liệu): Server gửi danh sách các file có thể tải cho
client và client gửi tên file cần tải cho server. Từ đó, server sẽ
gửi dữ liệu của file đó cho client.
Thông tin mã hóa: Dữ liệu được gửi đi sẽ được mã hóa dưới dạng “utf-8” • Footer (Phần cuối):
Client nhận file đã tải và lưu vào folder “Client_path”.
Kết thúc kết nối đến server của client bằng việc nhấn “Ctrl- C”. - Chương trình 2:
1.3. Kiểu dữ liệu của thông điệp:
- Kiểu dữ liệu của thông điệp được mã hóa dưới dạng “utf-8”. Các
yêu cầu và phản hồi đều được chuyển dưới dạng chuỗi byte và
được mã hóa/ giải mã bằng cách sử dụng mã hóa “utf-8”. 2.
Môi trường lập trình và các framework hỗ trợ để thực thi ứng dụng: Môi trường lập trình:
• Ngôn ngữ lập trình: Mã nguồn được viết bằng ngôn ngữ Python.
• Phiên bản Python: Mã nguồn được viết trên Python 3.x. Đảm
bảo mã nguồn sẽ hoạt động với các tính năng và cú pháp của Python 3.x. Các framework hỗ trợ:
Mã nguồn trong đồ án không sử dụng framework nào cụ thể. Chỉ sử dụng các
thư viện tiêu chuẩn của Python, không cài đặt them thư viện từ bên ngoài. 3.
Hướng dẫn sử dụng tính năng chương trình: - Chương trình 1:
• Chạy tệp mã nguồn Python bằng dòng lệnh cmd để khởi động server.
Yêu cầu máy phải cài đặt Python.
Hình 1: Nhập dòng lệnh cmd
• Chạy tệp mã nguồn Python ở máy thứ hai bằng dòng lệnh cmd để khởi
động client. Yêu cầu máy phải cài đặt Python.
Hình 2: Nhập dòng lệnh cmd để chạy chương trình client
• Ở phần E:, nhập IP của server mà client muốn kết nối.
Ở đây, server đang chạy có địa chỉ IP là 192.168.6.1 nên client sẽ nhập vào 192.168.6.1
• Sau khi kết nối thành công, chương trình server nhận kết nối từ client và
gửi danh sách file mà client có thể tải từ server.
Hình 3: Client kết nối đến server và bên dưới là danh sách file mà server gửi cho client
Hình 4: Danh sách file và dung lượng mà server gửi cho client
Hình 5: Server nhận kết nối từ client
• Trong “input.txt”, nhập các file mà client muốn tải từ server.
Hình 6: Nhập các file client cần tải vào input.txt
• Sau khi nhập, nhấn Ctrl-V để lưu lại danh sách, client sẽ gửi tuần tự các
file cần tải đến server và server sẽ gửi dữ liệu của file đó đến client.
Hình 7: Server nhận tên các file mà client cần tải
Hình 8: Client hoàn tất tải các file trong input.txt
• Các file tải về sẽ được lưu trong thư mục “Client_path”.
Hình 9: Các file mà client nhận được lưu vào folder
• Sau khi tải xong, nếu muốn kết thúc kết nối đến server, thì người dùng
client nhấn tổ hợp phím Ctrl-C để dừng.
Hình 10: Người dùng client nhấn Ctrl-C
Hình 11: Server ngắt kết nối với client - Chương trình 2: 4.
Bảng phân công công việc: 5. Tài liệu tham khảo