Server necessario per rilevare automaticamente il client

0

Ho un progetto che richiede un'app client per comunicare con un server. Mi chiedevo se c'è un modo per l'app client di rilevare i server disponibili e "sapere" con un metodo o un altro quale server è quello di cui ha bisogno.

Il client è costruito con .net e c #, il server è un semplice database SQL. Sono sulla stessa rete.

Esiste un meccanismo integrato per farlo oppure l'attività è più complessa di quanto non sembri all'inizio?

Non ho più dettagli ATM, è solo un'idea. Il motivo dietro è che quando un utente usa l'app client, non vogliamo che inserisca manualmente le stringhe di connessione se non deve farlo.

    
posta Denis Kralj 23.05.2014 - 16:10
fonte

2 risposte

2

Posso pensare a tre soluzioni principali del problema:

  1. Invia un messaggio all'indirizzo broadcast della rete su una porta ben nota. Il tuo stesso server di rete lo preleva e invia una risposta all'indirizzo di origine ("Sono qui a: ...").

  2. Fai in modo che il tuo server invii occasionalmente un messaggio all'indirizzo di broadcast su una porta nota, una volta ogni tanti secondi. I client possono ascoltarlo e quindi connettersi.

  3. Avere un server master responsabile dell'accoppiamento dei due: il server invia pacchetti "I'm not dead yet" al master; il client si connette al master e ottiene un elenco di server. (*) Non lo consiglio.

1 e 2 sono essenzialmente uguali, ma con scansione attiva (1) o passiva (2). 1 sembra più pulito sulla rete; 2 è probabilmente un po 'più semplice da implementare.

(*) Questo è molto più fastidioso e richiede un altro server su un indirizzo noto, e rappresenta un single point of failure , ma può risolvere i problemi di rilevabilità.

    
risposta data 23.05.2014 - 20:00
fonte
0

Parlando a un livello più alto di JvR, userei una libreria esistente che usa broadcast / multicast internamente.

Non ho familiarità con l'ecosistema Windows, ma questo sarebbe risolto da un'implementazione di zeroconf: Bonjour (Mac OS X) o Avahi (Linux / BSD). L'unica cosa che ho usato Avahi per me è mDNS, ma so che supporta anche la scoperta dei servizi.

    
risposta data 24.05.2014 - 01:23
fonte

Leggi altre domande sui tag