我想创建一个回显服务器,而不在字符串中指定任何命令。我希望所有命令都通过管道连接。
这似乎不可能,因为响应在请求传递到响应生成逻辑之前就已返回。看来我可以使用 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