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

问题描述 投票:7回答:5

我发出命令:

netcat serveraddress myport < MY_FILE

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

netcat serveraddress myport < MY_FILE | 

那现在不行。

我正在使用unix。

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

sockets unix netcat
5个回答
13
投票

也许你在做:

cat MY_FILE - | ncat ...

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


8
投票

服务器端:

nc -k -l 10000 < my_in_file

客户端:

echo "bye" | netcat 192.168.1.6 10000 > my_in_file -

6
投票

要继续倾听其他连接,请在-k上使用nc

假设您要连接到服务器,服务器写入文件并打印到stdout?

服务器:

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

客户

nc $IP $PORT < file_to_send

4
投票

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

echo MY_FILE | nc -q -1 192.168.0.1 9000

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


1
投票

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

type FILE con | ncat HOST

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

笔记

© www.soinside.com 2019 - 2024. All rights reserved.