O utilitário nc
não pode manipular várias conexões simultaneamente . Ele pode lidar com eles sequencialmente .
Você pode usar a opção -k
para que as conexões que estão "aguardando na linha" dos clientes subseqüentes sejam tratadas após o primeiro cliente se desconectar. Por exemplo:
# terminal A: 'server'
$ nc -l -vv -p 8000 -k
Listening on [0.0.0.0] (family 0, port 8000)
Connection from localhost 45080 received!
hi
bye
Connection from localhost 45082 received!
hi
bye
#terminal B: 'client 1'
nc localhost 8000
hi
bye
^C
Embora o terminal C tente estabelecer uma conexão antes que o terminal B se desconecte, o 'servidor' no terminal A automaticamente o pega e o manipula depois.
# terminal C: 'client 2'
nc localhost 8000
hi
bye
^C
[EDIT-1]: Se você estiver criando scripts e precisar de vários, poderá considerar a ativação de várias instâncias de nc
'servers' em um conjunto de portas predefinidas e então decida quais se conectar, mas isso pode ficar mais complicado.
[EDIT-2]: achei esta resposta basicamente à mesma pergunta, que menciona outras alternativas de ferramentas.