nc ficando preso inesperadamente

0

Eu esperava isso:

nc -l localhost 7000 </dev/null &
nc localhost 7000 </etc/profile

e isso

nc -l localhost 7000 </etc/profile &
nc localhost 7000 </dev/null

para terminar depois de imprimir meu /etc/profile mas ambos os grupos de comando acabam ficando presos (ambos os processos no primeiro caso; no segundo caso, o servidor termina mas o cliente não o faz).

Por que os comandos não terminam?

Isso é um bug no meu nc / Linux (4.15)? Eu tentei no MacOS e no Cygwin e apenas os comandos do Linux não estão terminando.

    
por PSkocik 04.10.2018 / 16:51

1 resposta

2

Estou usando o netcat e não o gnu-netcat; Não tenho certeza de qual versão você está usando, mas se for o gnu-netcat, as opções podem ser diferentes.

Eu tenho uma opção -q :

-q seconds after EOF is detected, wait the specified number of seconds then quit

Então, se eu fizer:

$ nc -l localhost -p 7000 -q 0 < /etc/passwd

Seguido por:

$ nc localhost 7000

Depois, obtenho o conteúdo de /etc/passwd no segundo terminal e ambas as instâncias de nc terminam.

    
por 04.10.2018 / 17:03