Đề tài: Ứng dụng truyền file giữa hai máy tính sử dụng giao thức TCP (TCP File Transfer System).
Hệ thống triển khai mô hình Client - Server cho phép truyền tải tập tin (mọi định dạng: .mp4, .zip, .exe,...) với dung lượng lớn qua mạng LAN.
Hệ thống bao gồm 2 module chính:
- Server: Lắng nghe kết nối và nhận file.
- Client: Kết nối tới Server và gửi file.
💡 Tính năng nổi bật:
- Hỗ trợ truyền file Binary an toàn.
- Hiển thị Real-time Progress: % hoàn thành, dung lượng đã gửi.
- Tính toán Tốc độ truyền tải (MB/s) theo thời gian thực.
- Xử lý tên file tự động (Timestamp) để tránh ghi đè dữ liệu.
- Ngôn ngữ: C# (.NET Framework 4.7.2 trở lên).
- IDE: Visual Studio 2019 / 2022.
- Giao thức: TCP/IP.
- Core Technics:
System.Net.Sockets: Sử dụngTcpListener(Server) vàTcpClient(Client).System.IO: Sử dụngNetworkStreamvàFileStreamđể xử lý luồng dữ liệu.- Multithreading: Xử lý đa luồng để Server có thể nhận nhiều kết nối hoặc không bị treo giao diện (UI) khi truyền tải.
- Buffer Management: Tối ưu hóa buffer size (1MB) để tăng tốc độ đọc ghi.
- Mở Solution
FileTransferSystem.slnbằng Visual Studio. - Chọn project FileTransferServer làm Startup Project (hoặc chuột phải -> Debug -> Start new instance).
- Nhấn Start.
- Server sẽ lắng nghe tại cổng mặc định 8080.
- Chạy project FileTransferClient.
- Nhập thông tin kết nối:
- Server IP: *
127.0.0.1(nếu chạy cùng máy - Localhost).IP LAN(ví dụ:192.168.1.10) nếu chạy khác máy.
- Port:
8080.
- Server IP: *
- Nhấn Browse (...) để chọn file cần gửi.
- Nhấn Send / Upload để bắt đầu.
Để hai máy tính khác nhau trong cùng mạng LAN có thể truyền file, cần thực hiện:
-
Lấy IP của máy chạy Server: Mở CMD, gõ lệnh:
ipconfigLấy địa chỉ IPv4 (ví dụ: 192.168.1.15).
-
Mở port qua Firewall (trên máy Server): Nếu Client không kết nối được, hãy chạy lệnh sau dưới quyền Administrator:
netsh advfirewall firewall add rule name="FileTransferServer" dir=in action=allow protocol=TCP localport=8080
File sau khi Server nhận thành công sẽ được lưu tại:
FileTransferServer/bin/Debug/Received/
Lưu ý: Tên file sẽ được tự động thêm Timestamp (HHmmss) vào phía trước để đảm bảo tính duy nhất (Ví dụ:
084450_hello.txt).
- Võ Phát Đạt
- Vũ Mạnh Hùng
- Dương Duy Quý
- Trần Hoàng Phúc