netcat 回声服务器 - 可以用管道代替命令作为字符串吗?

Sri*_*bat 3 netcat

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

这似乎不可能,因为在请求可以传递给响应生成逻辑之前返回响应。似乎我可以使用 ncat 但我也宁愿避免这种情况。

我认为使用 fifo 队列可能是可能的,但我无法使其正常工作。

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

以我有限的语言能力,试图证明这些限制是具有挑战性的。但我的最终目标是使用 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
Run Code Online (Sandbox Code Playgroud)

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

Sri*_*bat 6

这做我想要的:

服务器:

mkfifo fifo
cat fifo  | nc -k -l 4458 -v | cat  > fifo
Run Code Online (Sandbox Code Playgroud)

客户:

echo "45" | nc localhost 4458 
Run Code Online (Sandbox Code Playgroud)