Pipe Text Into and Out do Netcat Server usando o mkfifo

1

Eu queria fazer dois canais para um servidor netcat que insere texto no servidor e outro que envia texto do servidor. Eu tenho o servidor em execução em um script separado com os tubos de entrada e saída. Outro script (que ainda não fiz) lê a saída do servidor netcat usando o canal de entrada e, em seguida, envia dados para o canal de saída. O tempo todo isso está acontecendo, um cliente está enviando dados para o servidor, e o script que eu não fiz lê os dados enviados do cliente no servidor, em seguida, envia os dados para o servidor, que vai para o cliente. O script do servidor não recebe dados do cliente quando eu adiciono uma saída ou um pipe de entrada e ele não responde aos dados enviados para o canal de entrada. Eu não sei porque isso acontece, então se alguém puder me mostrar como fazer isso, seria ótimo.

Script do servidor:

#!/bin/bash

mkfifo in
mkfifo out

sudo nc -lk 22 <in >out
#Yes, I know I can run this in background, but I don't
#+want to do that yet.

script do cliente:

#!/bin/bash

while [ 1 ]
do
nc localhost 22
done
#I know this block looks odd, but it allows the client to continue
#+communicating with the server, even after an EOF.

Script de tratamento do servidor teórico:

#!/bin/bash
#This script is run after the server script is run in another console.

while [ 1 ]
do
in="$(cat out)" #The script will be stuck here until there is output from the "out" pipe
if [ $in = "blah" ]
then
echo "blah to you, too." >in #Here, the echo output should be sent to the client from the server
fi
#I can add a lot more here after I get this sorted out
done
    
por SpecialBomb 05.01.2016 / 00:04

0 respostas