Netcat

netcat echo server - 可以使用管道而不是命令作為字元串嗎?

  • August 2, 2014

我想創建一個回顯伺服器而不在字元串中指定我的任何命令。我希望所有命令都通過管道連接。

這似乎是不可能的,因為在將請求傳遞給響應生成邏輯之前,響應已被返回。看來我可以使用 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 實現回顯伺服器。我不想使用字元串,因為所有這些命令都是動態的,我只是不想處理額外的間接級別(首先,我的文本編輯器將沒有有用的語法突出顯示)。不過,我願意接受此處的文件解決方案。

這就是我想要的:

伺服器:

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

客戶:

echo "45" | nc localhost 4458 

引用自:https://unix.stackexchange.com/questions/147977