J'essaie de créer une interface client-serveur. Pensez-y comme à un chat en tête-à-tête.
Ce que je veux obtenir, ce sont deux vues horizontales. En bas pour mon entrée (serveur), en haut pour la sortie client et mon entrée. Les deux sont formatées (par exemple, ajout de l'horodatage). J'établis la connexion en utilisant netcat. J'ai réussi à diviser l'écran, à formater et à imprimer les données entrantes. Ce qui me manque, c'est d'imprimer mon entrée dans la fenêtre du haut en même temps que je l'envoie au client. J'utilise named pipe. Je démarre tout avec la commande bare temporaire screen -c screens
. À l'avenir, tout commencera à partir du troisième script avec des paramètres). J'utilise CrunchBang, une distro 64 bits basée sur Debian.
Peut-être expect
pourrait résoudre le problème ? Toute aide serait appréciée.
server.sh :
#!/bin/bash
pipe=/tmp/pipe
trap "rm -f $pipe" EXIT
if [[ ! -p $pipe ]]; then
mkfifo $pipe
#chmod +x $pipe
fi
nc localhost -lp 53656 >$pipe &
while true
do
read message
echo "$message" >$pipe
clear
done
conv.sh :
#!/bin/bash
# conversation window
clear
pipe=/tmp/pipe
while true
do
if read line <$pipe; then
if [[ "$line" == "quit" ]]; then
break
fi
NOW=$(date "+%H:%M")
echo "($NOW) Client: $line"
fi
done
configuration des écrans :
startup_message off
split
focus
screen ./server.sh
title "input"
focus top
screen ./conv.sh
title "conv"
focus bottom
Regard de fenêtre :