我有一個連接到 LAN 的 Raspberry Pi (Debian Linux),它可以從某些連接的裝置讀取資料並將其輸出到 STDOUT。
假設該程式在“伺服器”上運行,我想將腳本的輸出提供/usr/bin/data
給連接埠 1234。
我希望任何客戶端透過連接到該連接埠來提取該腳本的輸出,使用類似
nc Server 1234 > ServerData.txt
我希望伺服器保持活動狀態,為每個連線運行腳本,提供數據,然後關閉與客戶端的連線。伺服器需要保持活動狀態並等待下一個連線。
在伺服器上運行的 netcat 命令是什麼?
答案1
將需要 netcat 的更高級版本之一。您可以使用ncat
或socat
:
伺服器端
當客戶端連接時,執行可執行程式/usr/bin/data
並將程式輸出傳送給客戶端。
NCAT方法:
$ ncat -l 1234 -c '/usr/bin/data' --keep-open
SOCAT方法
$ socat -U TCP-LISTEN:5403,fork EXEC:'/usr/bin/data',stderr,pty,echo=0
客戶端:
連接到伺服器,並接收伺服器的輸出。
NCAT 歸檔方法
$ ncat Server 1234 | tee ServerData.txt
NC (netcat) 標準輸出法
$ </dev/null nc <Server.ip> 5403 > /dev/stdout
要儲存到文件,請將 /dev/stdout 替換為文件名
WGET 方法到文件
$ wget -q <Server.ip>:5403 -O myfile.txt
若要列印結果,請將 myfile.txt 替換為 /dev/stdout