如何使用netcat发送文件,然后保持连接活动?

时间:2012-09-04 16:43:45

标签: sockets unix netcat

我发出命令:

netcat serveraddress myport < MY_FILE

问题是,一旦发送文件,netcat就会发送一条消息来关闭连接。我需要在发送该文件后从控制台写入消息。我记得已经对pipileline做了一些事情到stdin ..是这样的吗?

netcat serveraddress myport < MY_FILE | 

现在没有用。

我在使用unix。

额外信息:这不承担服务器端的控制(E.G.在服务器端使用netcat来监听入站连接)

5 个答案:

答案 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以结束连接。

备注