netcat echo 服务器 - 可以使用管道而不是字符串形式的命令吗?

netcat echo 服务器 - 可以使用管道而不是字符串形式的命令吗?

我想创建一个回显服务器,而不在字符串中指定任何命令。我希望所有命令都通过管道连接。

这似乎不可能,因为响应在请求传递到响应生成逻辑之前就已返回。看来我可以使用 ncat,但我也希望避免这种情况。

我认为使用先进先出队列可能是可能的,但我很难让它工作。

“我正在尝试做什么”部分

由于我有限的语言能力,试图证明这些限制的合理性是一项挑战。但我的最终目标是利用 xinetd 的便利(但没有守护进程)维护所有应用程序逻辑的主脚本。这样的主脚本可能有几十行,如下所示:

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

第二个不起作用,因为它无法将输出返回给客户端。因此,我将问题减少到使用 netcat 实现回显服务器。我不想使用字符串,因为所有这些命令都是动态的,我只是不想处理额外的间接级别(首先,我的文本编辑器的语法突出显示的用处要小得多)。不过,我愿意接受此处的文档解决方案。

答案1

这就是我想要的:

服务器:

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

客户:

echo "45" | nc localhost 4458 

相关内容