Echo

netcat:向回顯服務發送文本,讀取回复然後退出

  • March 14, 2022

我想用netcat發送一段文本到我伺服器上的 echo 服務,得到回复然後退出,這樣我就知道連接仍然很好。到目前為止,我已經嘗試過:

echo 'test' | netcat server 7 

這樣 netcat 將等待更多輸入而不是退出。

netcat收到回顯服務的回復後如何退出?

netcat-openbsd剛剛嘗試過 -和netcat-traditional(ubuntu 16.4)之間的行為略有不同。OpenBSD 變體可以滿足您的期望,而使用 netcat-traditional 我需要添加-q 1以避免等待更多輸入。

echo 'test' | netcat -q 1 server 7

您的命令應該有效。它與手冊頁中的一些範例非常相似netcat

這正是netcat應該如何操作的:一旦它在標準輸入上達到 EOF,它(單向)關閉連接/到/伺服器,然後等待來自伺服器的數據。當後者關閉連接時(另一種方式:伺服器->客戶端),然後netcat停止。

如果您的netcat命令沒有完成,我想在網路級別發生了一些奇怪的事情,使echo伺服器一直在監聽額外的輸入。

您可以嘗試在標準輸入上遇到 EOF 後-q強制停止 N 秒的選項:netcat

netcat -q1 server echo <<< "test"

<<< "test"是一個bash主義,echo ... |如果你不使用,請使用你的語法bash

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