Qual è il modo più efficace per scoprire i dispositivi su una rete?

2

Ho programmato da zero un web server C come interfaccia per il controllo dei moduli WiFi ESP8266 che prevedo di utilizzare per controllare appliance e amp; illuminazione con relè. Nel tentativo di creare un'interfaccia user-friendly, spero di implementare l'individuazione di dispositivi automatici nel tentativo di rendere l'esperienza più semplice. In che modo dovrei avvicinarmi a questo? Ecco il mio concetto iniziale:

  1. Il modulo WiFi si connette alla tua rete.
  2. È necessario ospitare un server UDP che attenderà i pacchetti sulla porta X.
  3. Il server principale utilizza la subnet mask per inviare un pacchetto UDP a tutti gli indirizzi IP sulla porta X contenente un pacchetto di dati che dice "Ehi, sono il server principale!"
  4. Il modulo WiFi lo riconoscerà inviando una richiesta POST HTTP al server principale dicendo "Ehi, sono un dispositivo con ID Y! Aggiungimi alla tua lista!"
  5. A questo punto, il modulo WiFi interrompe l'ascolto dei pacchetti UDP.
  6. Il modulo imposta il server TCP per ascoltare i comandi. I comandi tra il server principale e i dispositivi avverranno su TCP.

C'è qualche difetto nel mio piano? Che dire di IPv6 (se anche quei dispositivi lo supportano)?

    
posta dylanweber 22.08.2015 - 09:47
fonte

1 risposta

6

Esistono protocolli esistenti per l'esecuzione del rilevamento di dispositivi; sarebbe meglio usare uno di questi piuttosto che rotolare il tuo. I principali concorrenti sono mDNS (aka Bonjour) e SSDP (aka Universal Plug and Play). Suggerirei di leggerli e poi di prendere in mano una delle tante implementazioni open source per iniziare a lavorare da.

    
risposta data 22.08.2015 - 10:06
fonte

Leggi altre domande sui tag