Messaggi di gruppo di computer su Internet

4

Voglio poter inviare messaggi tra computer sulla rete internet ma con funzionalità minime

requisito sono- 1) i computer possono unirsi / uscire dal gruppo (mi aspetto che le dimensioni del gruppo siano un massimo di 5-10) 2) ogni messaggio generato da qualsiasi computer verrà inviato a ogni altro nodo (questo è il principale requisito e ho brevi messaggi che devono essere inviati nel più breve tempo possibile: suggerire il protocollo di livello di rete da utilizzare qui), il messaggio non sarà rispedito o ack (eccetto il congedo) .. ma voglio comunque mantenere alta affidabilità, posso mantenere senza ricevere acks?

un problema sarebbe quello di comunicare su Internet Avrò bisogno di una sorta di supporto NAT? come può essere gestito senza un server stordente?

Devo usare una libreria p2p? come penso che la maggior parte delle funzionalità che offrono non sarà necessario da me qualcuno potrebbe suggerire qualche qui?

Sto lavorando in C ++.

    
posta zcqwevb 15.07.2011 - 07:45
fonte

3 risposte

1

Perché non usare solo il TCP? Il server può essere un semplice server di inoltro o un server IRC off-the-shelf. Hai qualche tipo di requisito di latenza critico? O requisito di alto rendimento? In caso contrario, vorrei semplicemente togliere il server dallo scaffale.

    
risposta data 13.08.2011 - 09:18
fonte
0

2 modi che vedo:

  • Modello classico client / server con connessioni UDP
  • Modello P2P

Il client / server è il più semplice dal momento che non devi preoccuparti del port forwarding.

Scegli quale è il migliore per la tua app

    
risposta data 15.07.2011 - 17:42
fonte
0

Potresti dare un'occhiata a ZeroMQ . È fondamentalmente una coda di messaggi molto efficiente con supporto per diversi protocolli di trasporto. Oltre ad altri, implementa un modello Publish-Subscribe in cui un nodo può pubblicare messaggi che verranno ricevuti da tutti i nodi di sottoscrizione. È molto leggero e funziona su Windows, Linux e Mac. Forse questo è un buon punto di partenza ...?

Si noti che esiste anche un binding Qt (nzmqt) per questo (nel caso in cui si desideri utilizzare Qt per il proprio progetto ).

    
risposta data 12.08.2011 - 08:03
fonte

Leggi altre domande sui tag