Come inviare un messaggio sia a netcat che ad altri script?


1

Sto cercando di creare un'interfaccia client-server. Pensala come una chat individuale.

Quello che voglio ottenere sono due viste orizzontali. In basso per il mio input (server), in alto per l'output del client e il mio input. Entrambi formattati (ad esempio timestamp aggiunto). Sto facendo una connessione usando netcat. Sono riuscito a dividere lo schermo, formattare e stampare i dati in arrivo. Quello che mi manca è di stampare il mio input nella finestra superiore insieme all'invio al client. Sto usando named pipe. Comincio tutto con un comando nudo temporaneo screen -c screens. In futuro, tutto inizierà dal terzo script con i parametri). Sto eseguendo distro CrunchBang basato su debian 64-bit.

Può essere expect potrebbe risolvere il problema? Qualsiasi aiuto sarebbe apprezzato.

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

schermata di configurazione:

startup_message off

split
focus
screen ./server.sh
title "input"

focus top
screen ./conv.sh
title "conv"

focus bottom

Aspetto della finestra:

enter image description here

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.