Eu já havia enfrentado esse problema também. O principal problema é netcat
. É uma ótima ferramenta, mas fecha a conexão quando um de seus descritores de arquivo de entrada ou saída conectados está fechado. Não faz nada quando o servidor não está escutando e sai quando o outro par é fechado. Contanto que você configure o servidor corretamente e mantenha seus descritores de arquivos abertos, ele funcionará. Por exemplo, eu testei o seguinte cenário e funcionou muito bem:
em uma configuração de terminal, um servidor de eco (eu configurei como abaixo):
mkfifo loopFF
netcat -t -l -p 4000 <loopFF | tee loopFF
agora em outro terminal, configure sua conexão fifo com seu servidor:
mkfifo in
mkfifo out
netcat 127.0.0.1 4000 <out >in &
imprima o que quer que o servidor envie para você (e mantenha-o em execução, se você usar in
fifo em um aplicativo que fecha uma extremidade em sua terminação, netcat
fecha a conexão)
cat in &
e no mesmo terminal:
cat > out
agora o que você digitar será impresso novamente (depois de pressionar Enter). Fechar este comando também fechará a conexão.