我发出命令:
netcat serveraddress myport < MY_FILE
问题是,一旦发送文件,netcat就会发送一条消息来关闭连接。我需要在发送该文件后从控制台写入消息。我记得已经对pipileline做了一些事情到stdin ..是这样的吗?
netcat serveraddress myport < MY_FILE |
现在没有用。
我在使用unix。
额外信息:这不承担服务器端的控制(E.G.在服务器端使用netcat来监听入站连接)
答案 0 :(得分:13)
也许你在做:
cat MY_FILE - | ncat ...
(请注意,我故意拼错netcat,因为我相信ncat
是一个优秀的程序。)
答案 1 :(得分:8)
服务器端:
nc -k -l 10000 < my_in_file
客户方:
echo "bye" | netcat 192.168.1.6 10000 > my_in_file -
答案 2 :(得分:6)
要继续侦听其他连接,请使用-k
上的nc
。
假设你想连接服务器,服务器写入文件并打印到stdout?
服务器:
nc -k -l $PORT | tee file ( or > file without print to stdout)
客户端
nc $IP $PORT < file_to_send
答案 3 :(得分:4)
您可以使用nc: - / p>的-q -1选项
echo MY_FILE | nc -q -1 192.168.0.1 9000
这样,如果命令在后台运行,它也会起作用。
答案 4 :(得分:1)
我意识到这个线程很老但是OP使用的是unix,这里的参考是一个等同于&#34; cat FILE - 的窗口。 ncat HOST&#34;:
type FILE con | ncat HOST
然后键入CTRL-Z或CTRL-C以结束连接。
备注强>