У меня типичное приложение чата.
Клиентская часть реализована с использованием двух потоков.
Резьба1
do {
show menu
read option
case option
1: option1
2: option2
.
.
.
5:end
end case
while (!end)
Тема 2:
do {
read message from socket
display message
while (!end)
Одной из проблем является быстрое выполнение Thread1, поэтому после обработки этого параметра снова отображается меню, прежде чем Thread2 сможет отобразить свое сообщение.
Я решил эту проблему, поместив Thread1 в спящий режим на 1000 мс, но не знаю, есть ли лучший способ сделать это.
Другое: когда клиент ничего не делает, на экране появляется просто сообщение с просьбой о выборе варианта для обработки. Если другой Клиент отправляет ему сообщение, то это сообщение отображается после запроса, поэтому информация является грязной: вот пример того, что Клиент увидит после получения сообщения от другого клиента.
1.- Print users conected
2.- Send message to all
3.- Send message to a user
4.- Quit
Choose an option: Message received from user "david": hello!
Есть ли способ справиться с этим?