Implementación de LocalSend: transferencia de archivos entre dispositivos en la misma red Wi-Fi, sin servidor central, cero configuración.
┌─────────────────────────────────────────────────────┐
│ Red Wi-Fi Local │
│ │
│ [PC — Electron App] ←──UDP 53317──→ [Android] │
│ ↑ ↑ │
│ WebSocket server WebSocket client │
│ (TCP 53318) ←──TCP 53318──────────┘ │
└─────────────────────────────────────────────────────┘
- Puerto fijo
53317, broadcast255.255.255.255 - Cada dispositivo envía "beacons" cada 3 segundos:
{"type":"hello","alias":"...","deviceType":"...","port":53318} - TTL de 10 segundos: si un dispositivo no responde, se elimina de la lista
- Cliente envia:
{type:"metadata", filename, size, mime, senderAlias} - Servidor espera decision del usuario
- Servidor responde:
{type:"decision", accepted: true/false} - Cliente envia chunks binarios (48KB mobile / sin limite desktop)
- Cliente envia:
{type:"done"} - Servidor confirma:
{type:"ack"}
- Desktop:
fs.createWriteStream— escribe chunks directamente a disco sin cargar en RAM - Mobile:
FileSystem.readAsStringAsyncconpositionylength— lee 48KB a la vez
desktop/— codigo fuente Electron appmobile/— codigo fuente React Native appINSTRUCCIONES.md— guia de configuracion de red y build
Ver INSTRUCCIONES.md para ejecutar el proyecto.