我有一个连接到 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)方法输出到 stdout
$ </dev/null nc <Server.ip> 5403 > /dev/stdout
保存到文件,用文件名替换 /dev/stdout
WGET 方法到文件
$ wget -q <Server.ip>:5403 -O myfile.txt
要打印结果,用 /dev/stdout 替换 myfile.txt