Eu uso o netcat para executar um servidor simples como este:
while true; do nc -l -p 2468 -e ./my_exe; done
Dessa forma, qualquer pessoa pode se conectar ao meu host na porta 2468 e conversar com "my_exe".
Infelizmente, se alguém quiser se conectar durante uma sessão aberta, ele receberá um erro "Conexão recusada", porque o netcat não está mais ouvindo até o próximo loop "while".
Existe uma maneira de fazer com que o netcat se comporte como um servidor multiencadeado, ou seja, sempre ouvindo as conexões de entrada? Caso contrário, existem algumas soluções alternativas para isso?
netcat
parallel-processing
etuardu
fonte
fonte
Respostas:
você está usando a ferramenta errada para a tarefa: use algo como ucspi-tcp , especialmente tcpserver :
fonte
Embora você não tenha mencionado o sistema operacional que está usando, presumo que seja Linux ou Unix com base na sintaxe do seu exemplo de comando shell.
Se o seu sistema estiver executando o xinetd (ou seu predecessor inetd ), você poderá usar esse software para escutar uma conexão na porta de sua escolha e executar um executável para responder. Com o xinetd / inetd, você tem a opção de permitir várias conexões simultâneas, cada uma servida por uma instância separada do seu executável.
fonte
você provavelmente poderia apenas colocar em segundo plano o processo (então ele não espera um retorno antes de passar para o próximo loop) com um '&' como:
fonte