[C++]Cout i cin jednocześnie

Witam.

Mam do napisania projekt zaliczeniowy i mam w zasadzie już wszystko oprócz jednej rzeczy. Otóż piszę prosty czat i mam już podział na wątki (do odczytywania i wysyłania wiadomości), ale nie mogę sobie poradzić z jednym problemem. Chciałbym, żeby w chwili nadejścia nowej wiadomości wyświetlała się ona od razu. Jednak jest to niemożliwe ze względu na to, że kod std::cin<<buffor; czeka na wprowadzenie wiadomości do wysłania. Kiedy wyślę jakąś wiadomość program wtedy “odbiera” wiadomości i je wyświetla.

Chciałbym, żeby wyświetlanie działało “niezależnie” od oczekiwania na wprowadzenie wiadomości.

 

Z góry dziękuję za pomoc

IcyMat

No to tak zrób :smiley:

A jakby w jednym wątku wypisywać, a w drugim wczytywać?

No inaczej się nie da jeśli strumienie są blokujące.

Możesz dwa wątki uruchomić na dwóch różnych portach? Ewentualnie, zrobić coś na wzór przerwania/wyjątku,

aby jeden watek zasypiał na czas przerwania (drugiego wątku)?

Jeżeli wyświetlasz to zwyczajnie w konsoli to słabo. Jedyne co to chyba lepiej użyć jakiejś biblioteki która umie wyświetlić bogatsze rzeczy w konsoli. Do głowy przychodzi mi tylko ncurses.

Tworzysz program konsolowy, który uruchamia dwa wątki na dwóch różnych portach i potem tworzysz coś do przerwań i tyle?