PDA

Visualizza la versione completa : [Borland C++ Builder 6] Chat Locale


Mauri94
02-02-2013, 08:22
Salve ragazzi, tramite il compilatore della Borland (C++ Builder 6) ho creato un applicazione GUI che permette ad un client di inviare messaggi al server (in tempo reale), quindi una chat. Tutto funziona perfettamente, il mio server è in locale (127.0.0.1) ed il client è connesso all'IP privato dell'host su cui gira il server. Se volessi rimanere in ambito locale, però espandere la funzionalità della chat permettendo ad N client di comunicare non solo con il server, ma anche tra loro, quindi creare una vera e propria chat, come potrei realizzare una cosa del genere?

ESSE-EFFE
03-02-2013, 16:55
Originariamente inviato da Mauri94
Se volessi rimanere in ambito locale, però espandere la funzionalità della chat permettendo ad N client di comunicare non solo con il server, ma anche tra loro, quindi creare una vera e propria chat, come potrei realizzare una cosa del genere?
Più o meno come già stai facendo, solo che il server deve fare da tramite per i client. Quindi un client dialoga solo con il server e tramite un protocollo (standard o che progetti tu) invia e riceve comandi. Per l'invio dei messaggi, ad esempio, dovrai prevedere anche di gestire l'informazione di chi ha generato il messaggio (oppure a chi è destinato). Poi ci possono essere altri comandi, sempre per fare un esempio il server potrebbe fornire l'elenco degli utenti connessi e aggiornare i client periodicamente.

Questo per una chat locale dovrebbe essere sufficiente. In alternativa potresti pensare ad un server che dopo il dialogo iniziale metta in comunicazione i client direttamente (in quel caso, a livello di socket, ogni client agirà anche da server). Come sempre poi penso possano esserci anche altre soluzioni.

franzauker2.0
03-02-2013, 17:20
Se la chat è limitata alla LAN ed a un numero relativamente ridotto di partecipanti può bastare addirittura un invio broadcast, che incapsuli il destinatario, e che venga "filtrato" dall'applicazione del client

Loading