Normalmente, isso é resolvido usando-se curses link para gravar as mensagens em uma parte diferente do terminal do que onde a entrada está sendo digitada.
Eu escrevi um programa de chat tcp / ip, mas eu tenho um problema. No programa cliente, enquanto o usuário escreve a mensagem, um thread em segundo plano recebe mensagens de um outro cliente e grava a mensagem no terminal. O problema surge quando o cliente começa a digitar a mensagem e, antes de pressionar a tecla de retorno, a mensagem recebida sobrepõe a mensagem. Como posso evitar isso? É possível escrever uma mensagem recebida sem sobrepor a mensagem que está sendo escrita?