netcat echo server - possível com pipes em vez de comandos como strings?

3

Eu quero criar um servidor de eco sem especificar nenhum dos meus comandos dentro de strings. Eu quero que todos os comandos sejam conectados por canos.

Isso não parece possível porque a resposta é retornada antes que a solicitação possa ser passada para a lógica de geração de resposta. Parece que eu poderia usar o ncat, mas eu também preferiria evitar isso.

Eu achei que seria possível com uma fila do fifo, mas estou tendo problemas para fazer isso funcionar.

A parte "O que estou tentando fazer"

A tentativa de justificar essas restrições é um desafio com minhas habilidades verbais limitadas. Mas meu objetivo final é manter um script mestre de toda a minha lógica de aplicativo com a conveniência do xinetd (mas sem daemons). Esse script mestre pode ter dezenas de linhas como estas:

nc -l 8080 | get_person_name.sh | create_insert_statement.sh | sqlplus
nc -l 8081 | get_person_id.sh | create_select_statement.sh | sqlplus

O segundo não funcionará porque não será capaz de retornar a saída para o cliente. Então, estou reduzindo o problema para implementar um servidor de eco com o netcat. Eu não quero usar strings porque todos esses comandos serão dinâmicos e eu não quero lidar com esse nível extra de indireto (para começar, meu editor de texto terá muito menos realce de sintaxe útil). Eu estaria aberto para uma solução de documento aqui.

    
por user7000 02.08.2014 / 06:36

1 resposta

6

Isso faz o que eu quero:

Servidor:

mkfifo fifo
cat fifo  | nc -k -l 4458 -v | cat  > fifo

Cliente:

echo "45" | nc localhost 4458 
    
por 02.08.2014 / 06:54

Tags