funcionalidade socat bidirecional com nc

3

Esta é a questão de alguma forma relacionada com link

Na configuração de teste, tenho três janelas de terminal abertas Eu corro em

Term1: "nc -l 55545"
Term2: "nc -l 55546"
Term3: "socat tcp:localhost:55545 tcp:localhost:55546"

A entrada para Term1 agora aparece no Term2 e entrada para Term2 aparece no Term1.

Esse é o comportamento desejado. Como posso conseguir esse comportamento apenas usando nc?

Quando eu corro em

Term3: "nc localhost 55545 | nc localhost 55546"

, em seguida, Entrada para Term1 aparece no Termo2, mas entrada para Term2 aparece no Term3. Como posso tornar o tubo bidirecional? Se possível, sem arquivos temporários.

    
por Ben 02.12.2011 / 01:21

1 resposta

11

Isso vem direto da página da Wikipedia sobre o netcat . No Term3, você executaria:

mkfifo backpipe
nc localhost 55545 0<backpipe | nc localhost 55546 1>backpipe

Isso faz exatamente o que você quer. Ele usa um FIFO para obter a saída do lado esquerdo de volta para o lado direito. Não é, estritamente falando, um arquivo temporário - um FIFO é um pipe nomeado entre dois processos.

    
por 02.12.2011 / 03:25

Tags