8

我发出命令:

netcat serveraddress myport < MY_FILE

问题是,一旦发送文件,netcat 就会发送一条消息以关闭连接。发送该文件后,我需要从控制台写入消息。我记得对标准输入的管道做了一些事情。是这个吗?

netcat serveraddress myport < MY_FILE | 

现在不行了。

我在unix上。

额外信息:这并没有在服务器端进行控制(例如在服务器端使用 netcat 来监听入站连接)

4

5 回答 5

16

也许你在做:

cat MY_FILE - | ncat ...

(请注意,我故意拼错了 netcat,因为我相信ncat它是一个优秀的程序。)

于 2012-09-04T21:59:05.600 回答
8

服务器端:

nc -k -l 10000 < my_in_file

客户端:

echo "bye" | netcat 192.168.1.6 10000 > my_in_file -
于 2012-09-05T00:08:51.630 回答
6

要继续侦听其他连接,请使用-kon nc

假设您要连接到服务器,服务器写入文件并打印到标准输出?

服务器:

nc -k -l $PORT | tee file ( or > file without print to stdout)

客户

nc $IP $PORT < file_to_send
于 2014-06-12T07:01:56.020 回答
4

您可以使用 nc 的 -q -1 选项:

echo MY_FILE | nc -q -1 192.168.0.1 9000

这样,如果命令在后台运行,它也将起作用。

于 2014-12-10T20:52:45.930 回答
1

我意识到这个线程很老,但是 OP 使用 unix,这里的参考是一个相当于“cat FILE - | ncat HOST”的窗口:

type FILE con | ncat HOST

然后键入 CTRL-Z 或 CTRL-C 以结束连接。

笔记

于 2015-12-19T21:02:55.040 回答