# Chương trình gửi file
<p style="text-align: right; font-size:14px; font-style: italic; color: #666;">
Tác giả: <b>Bành Gia Quý</b>, <b>Phạm Mạnh Cường</b>
</p>
---
### 1. LocalSend
**Giao thức:**
LocalSend sử dụng giao thức HTTP over TLS (HTTPS) chạy trong mạng cục bộ (LAN) để truyền dữ liệu trực tiếp giữa các thiết bị, không qua Internet.
Ứng dụng dùng UDP broadcast để quét và phát hiện các thiết bị khác đang chạy LocalSend trong cùng mạng.
**Kiến trúc:**
Mô hình client–server tạm thời: khi gửi file, một thiết bị đóng vai trò server (HTTP host), thiết bị còn lại client tải file về qua đường dẫn HTTPS cục bộ.
**Cách sử dụng:**
1. Cài đặt ứng dụng trên các thiết bị (Windows, macOS, Linux, Android, iOS).
2. Kết nối tất cả thiết bị vào cùng mạng Wi-Fi.
3. Mở LocalSend → chọn Send → chọn file → ứng dụng sẽ hiển thị danh sách thiết bị gần đó.
4. Thiết bị nhận chọn Accept để tải file.
→ Không cần tài khoản, không cần Internet.
---
### 2. PairDrop
**Giao thức:**
PairDrop hoạt động dựa trên giao thức WebRTC (Peer-to-Peer Real-Time Communication).
Quá trình “bắt cặp” (pairing) giữa các thiết bị được hỗ trợ bởi WebSocket signaling server, nhưng dữ liệu chuyển trực tiếp giữa các thiết bị, không lưu qua máy chủ trung gian.
**Kiến trúc:**
Mô hình peer-to-peer (P2P) — các trình duyệt hoặc thiết bị giao tiếp trực tiếp qua kết nối được tạo bằng WebRTC.
**Cách sử dụng:**
1. Mở trình duyệt (Chrome, Edge, Firefox, Safari, v.v.)
```js
https://pairdrop.net
```
2. Các thiết bị cùng mạng sẽ tự động hiển thị trong giao diện PairDrop.
3. Kéo thả file hoặc tin nhắn lên biểu tượng thiết bị.
4. Thiết bị nhận xác nhận “Accept” để tải.
→ Hoàn toàn không cần cài ứng dụng, hoạt động ngay trên web.
---
### 3. KDE Connect
**Giao thức:**
KDE Connect sử dụng UDP để khám phá thiết bị và TCP để truyền dữ liệu (tệp, tin nhắn, clipboard, điều khiển…).
Dữ liệu được mã hóa bằng TLS (Transport Layer Security).
**Kiến trúc:**
Mô hình phân tán (distributed), trong đó mỗi thiết bị vừa có thể là client vừa là server. Các thiết bị giao tiếp qua mạng nội bộ (Wi-Fi).
**Cách sử dụng:**
1. Cài đặt KDE Connect trên máy tính (Linux, Windows, macOS) và điện thoại (Android, iOS).
2. Kết nối cùng mạng Wi-Fi.
3. Mở ứng dụng, chọn Pair new device → cả hai thiết bị xác nhận kết nối.
4. Sau khi ghép đôi, có thể:
- Gửi/nhận file
- Điều khiển chuột, bàn phím
- Đồng bộ clipboard, thông báo, tin nhắn SMS
- Truy cập file từ xa
---
<style>
table {
width: 100%;
border-collapse: collapse;
font-size: 16px;
}
th, td {
border: 1px solid #ccc;
padding: 10px;
text-align: center;
}
th {
background-color: #1e90ff;
color: white;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
tr:hover {
background-color: #e6f7ff;
}
caption {
caption-side: top;
font-weight: bold;
font-size: 20px;
margin-bottom: 10px;
text-align: center;
}
</style>
<table>
<caption>📊 So sánh các ứng dụng LocalSend, PairDrop và KDE Connect</caption>
<thead>
<tr>
<th>Tiêu chí</th>
<th>LocalSend</th>
<th>PairDrop</th>
<th>KDE Connect</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Giao thức chính</b></td>
<td>HTTP + UDP</td>
<td>WebRTC + WebSocket</td>
<td>TCP + UDP + TLS</td>
</tr>
<tr>
<td><b>Mô hình</b></td>
<td>Client–Server cục bộ</td>
<td>Peer-to-Peer (P2P)</td>
<td>Phân tán (Distributed)</td>
</tr>
<tr>
<td><b>Yêu cầu cài đặt</b></td>
<td>Có</td>
<td>Không (chạy trên web)</td>
<td>Có</td>
</tr>
<tr>
<td><b>Tính năng</b></td>
<td>Gửi/nhận file</td>
<td>Gửi file, link</td>
<td>File, clipboard, điều khiển, SMS, thông báo</td>
</tr>
<tr>
<td><b>Đa nền tảng</b></td>
<td>Rất tốt</td>
<td>Rất tốt (qua trình duyệt)</td>
<td>Tốt (Linux, Android mạnh nhất)</td>
</tr>
<tr>
<td><b>Tốc độ LAN</b></td>
<td>Nhanh, ổn định</td>
<td>Nhanh, tùy trình duyệt</td>
<td>Nhanh, tùy cấu hình</td>
</tr>
<tr>
<td><b>Độ bảo mật</b></td>
<td>HTTPS nội bộ</td>
<td>P2P mã hóa</td>
<td>TLS mã hóa toàn bộ</td>
</tr>
<tr>
<td><b>Độ tiện dụng</b></td>
<td>Cao</td>
<td>Rất cao</td>
<td>Trung bình (nhiều bước cấu hình)</td>
</tr>
</tbody>
</table>
---
### Ý KIẾN RIÊNG CỦA NHÓM
1. LocalSend rất phù hợp cho chia sẻ file nhanh trong mạng nội bộ giữa nhiều hệ điều hành. Dễ dùng, gọn nhẹ, giao diện hiện đại.
2. PairDrop nổi bật nhờ không cần cài đặt, lý tưởng cho chia sẻ tạm thời hoặc khi dùng máy công cộng. Tuy nhiên, vì chạy trên trình duyệt, không có nhiều tính năng nâng cao.
3. KDE Connect là giải pháp toàn diện nhất cho người dùng Linux và Android, cung cấp khả năng tích hợp hệ thống rất mạnh mẽ (gần giống AirDrop + Handoff của Apple). Tuy nhiên, cài đặt phức tạp hơn và không tối ưu cho iOS.