PDA

Visualizza la versione completa : [C] Eseguire una 'printf' durante una 'scanf'


xGalaxy97x
26-09-2019, 19:22
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? :confused:

Provo a fare una 'rappresentazione temporale' del problema

### 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

Quindi C1 ha ricevuto il messaggio "Come va?" mentre stava digitando "Ciao sono C1" ed era arrivato a scrivere "Ciao son".

Spero di essermi spiegato bene....
Vi ringrazio in anticipo! :ciauz:

Scara95
28-09-2019, 10:24
https://en.wikipedia.org/wiki/Ncurses

xGalaxy97x
28-09-2019, 19:18
https://en.wikipedia.org/wiki/Ncurses
Intanto grazie per la risposta. Ho gi visto qualcosa su questa libreria ma, per quello che servirebbe a me, non riesco a farla funzionare proprio bene :dh:
Avresti magari il tempo di fare una bozza di codice? (io avr due thread: uno che accetta l'input dall'utente e l'altro che stampa i messaggi arrivati)

Grazie ancora!

Loading