Domanda

La mia app si apre un socket TCP e attende i dati di altri utenti della rete che utilizzano la stessa applicazione. Allo stesso tempo, è possibile trasmettere i dati ad un host specificato sulla rete.

Al momento, ho bisogno di inserire manualmente l'indirizzo IP dell'host di destinazione per essere in grado di inviare i dati. Voglio essere in grado di trovare un elenco di tutti gli host che eseguono l'applicazione e hanno la scelta dell'utente, che ospita i dati di trasmissione a.

Is Bonjour / ZeroConf la strada giusta per andare per raggiungere questo obiettivo? (Mi piacerebbe che cross-platform OSX / Win / * nix)

È stato utile?

Soluzione

  

può trasmettere i dati ad un host specificato sulla rete

Questo è un non-sequitur.

sto presumendo che non lo fai in realtà trasmissione media, vuoi dire Unicast o semplicemente "Invia"?

  

Is Bonjour / ZeroConf la strada giusta per andare a realizzare questo?

Questo in realtà dipende il vostro ambiente di destinazione e quello che la vostra applicazione è destinato a fare.

Come Ignacio fa notare, è necessario installare il software di Apple su Windows per Zeroconf / mDNS al lavoro in questo momento.

Questo potrebbe essere adatto per piccoli uffici / home.


Reti Tuttavia più grandi possono avere Layer 2 Multicast disabilitata per una serie di motivi, il punto in cui la vostra applicazione potrebbe essere nei guai.

Se si vuole che il lavoro in ambiente aziendale, quindi è necessario un po 'di configurazione, ma che non deve essere fatto a bordo (nei casi client app).

Potrebbe essere tramite un'opzione DHCP, o record di servizio DNS .. in questi casi, si sarebbe probabilmente essere iscritto un server interrogabile per monitorare clienti attivi .. molto simile a un tracker BitTorrent.

Due cose da prendere in considerazione durante la progettazione la vostra applicazione in rete:

  • Sarebbe mai ci sia motivo di eseguire più di un "installazione" della vostra applicazione su una rete?
  • considerare sempre le implicazioni delle versioni:? Un cliente è più aggiornata di un altro, possono continuare a parlare tra loro o almeno fallire con grazia

Altri suggerimenti

Zeroconf / DNS-SD è un'ottima idea in questo caso. E 'fornito da Bonjour su OS X e Windows (ma deve essere installato separatamente o come parte di un prodotto Apple su Windows), e da Avahi su FOSS * nix.

Credo che ZeroConf è un ottimo inizio. Si possono trovare questo documento utile.

Ho un elenco su una pagina web, bello se avete bisogno di comunicazioni via Internet.

<dl_service updated="2010-12-03 11:55:40+01:00">
 <client name="internal" ip="10.0.23.234" external_ip="1.1.1.1"/> 
 <client name="bigone" ip="2.2.2.2" external_ip="2.2.2.2">
  <messsage type="connect" from="Bigone" to="internal" />
 </client> 
</dl_service>

La mia idea iniziale era quella di aggiungere punzonatura firewall e tutto il resto, ma ho appena potrebbe non essere disturbati troppi dei padroni di casa, dove con IPS esterni per essere un problema ..

Ma ho davvero consiglio Zeroconf, almeno se si usa Linux + MacOSX, non so su Windows a tutti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top