J'ai un client et un serveur de chat en ligne de commande de base en Python, mais cela pourrait s'appliquer à n'importe quel langage. J'ai rencontré un problème très évident, et je ne suis pas sûr qu'il y ait un moyen de le contourner (à part utiliser une interface graphique ! ce qui résoudrait rapidement le problème). Lorsque le serveur envoie un message au client, ce qui amène ce dernier à print()
le message, il est inséré à l'endroit exact où la personne serait en train de taper son propre message, ce qui fait qu'il est coupé par le message entrant. Par exemple (écrit sous forme de commentaires # pour éviter une coloration syntaxique bizarre) :
# Client1: Knock-knock!
# Client2: Who's there?
# Client1: Interrupting cow!
# Client2: Inter
# Client1: MOOOOOOO
# Client2: rupting cow who?
Où le client 2 n'a pas appuyé sur la touche entrée depuis qu'il a tapé Who's there?
.
Il existe évidemment toutes sortes de solutions de contournement, comme les panneaux d'une interface graphique, mais je suis curieux de savoir s'il est possible d'implémenter cette fonction strictement dans le terminal/interface de commande natif. Je n'ai rien trouvé qui ressemble de près ou de loin à cela lors de mes recherches sur Internet pour trouver une solution ! Merci !