Buonasera, sto creando una chat Client-Server tramite l'utilizzo di Sockets (in C, su UNIX).
Detto in breve: quando un client invia un messaggio, il server lo inoltra a tutti gli altri client (broadcast).
Ora sorge un problema: se un client (C1) sta scrivendo un messaggio ed un altro client (C2) ne ha appena inviato uno, come fa C1 a ricevere il messaggio se sta digitando su terminale?
In altre parole, è possibile stampare il messaggio di C2 lasciando inalterato l'input di C1?
Provo a fare una 'rappresentazione temporale' del problema
Quindi C1 ha ricevuto il messaggio "Come va?" mentre stava digitando "Ciao sono C1" ed era arrivato a scrivere "Ciao son".codice:### TERMINALE DI C1 ### -> Istante di tempo t1 <- (STAMPA) C2: Ciao sono C2 (INSERIMENTO) Ciao son ->Istante di tempo t2 <- (STAMPA) C2: Ciao sono C2 (STAMPA) C2: Come va? (INSERIMENTO) Ciao sono C1
Spero di essermi spiegato bene....
Vi ringrazio in anticipo!