O comando netcat não está funcionando no modo bidirecional

O comando netcat não está funcionando no modo bidirecional

Estou usando o netcat no Linux para enviar e receber dados (usando o protocolo udp) de uma porta serial para outro dispositivo através da rede. O comando é:

nc -u 192.168.10.12 < /dev/ttyUSB0 > /dev/ttyUSB0 

O USB que estou usando é um conversor USB para serial 485 e estou percebendo que a luz do receptor não pisca enquanto a luz de transmissão está piscando.

Verifiquei se as mensagens foram enviadas e recebidas pela rede usando tcpdump e pude ver claramente que ele está transferindo os dados entre minha máquina e a máquina do dispositivo! Agora estou pensando que pode ser um problema do netcat, alguma ideia?

Responder1

Apenas jogando isso lá fora..

Mas control-d pode sinalizar o fim do arquivo e talvez seus fluxos de entrada incluam esse caractere. Isso encerraria esse fluxo de entrada, enquanto o outro poderia continuar funcionando.

Embora eu não saiba o que aconteceu na sua situação específica, sei que você pode testar isso via nc na linha de comando:

#create a server
nc -v -v -l -p 9000      #yes, I was testing xdebug...


-------- in a different terminal:

#create a client
nc localhost 9000

Digite algo em ambos. Pressione Ctrl-D em um. Agora, as coisas que você digita nesse terminal não aparecerão, mas as coisas que você digita no outro terminal ainda aparecerão.

Me pegou de surpresa. Achei que tinha algum tipo de problema de buffer ou era half duplex. Encontrei sua pergunta antes de encontrar a resposta.

Ah, e para garantir que não se comporte dessa maneira:

stty eof undef

informação relacionada