Sockets 如何使用netcat发送文件,然后使连接保持活动状态?
我发出命令:Sockets 如何使用netcat发送文件,然后使连接保持活动状态?,sockets,unix,netcat,Sockets,Unix,Netcat,我发出命令: netcat serveraddress myport < MY_FILE netcat服务器地址myport
netcat serveraddress myport < MY_FILE
netcat服务器地址myport
问题是,一旦文件被发送,netcat就会发送一条消息来关闭连接。发送该文件后,我需要从控制台写入消息。我记得我对皮皮莱恩做了些什么。。是这个吗
netcat serveraddress myport < MY_FILE |
netcat服务器地址myport
现在不行了
我用的是unix
额外信息:这没有假定服务器端控制(例如,在服务器端使用netcat侦听入站连接)可能您正在执行以下操作:
cat MY_FILE - | ncat ...
(请注意,我故意错误地推销netcat,因为我相信ncat
是一个更优秀的程序。)服务器端:
nc -k -l 10000 < my_in_file
要继续侦听其他连接,请在
nc
上使用-k
假设您想连接到服务器,服务器写入文件并打印到标准输出
服务器:
nc -k -l $PORT | tee file ( or > file without print to stdout)
客户
nc $IP $PORT < file_to_send
nc$IP$PORT<要发送的文件
您可以使用nc的-q-1选项:
echo MY_FILE | nc -q -1 192.168.0.1 9000
这样,如果命令在后台运行,它也会工作。我意识到这个线程非常旧,但OP使用unix,这里的参考是相当于“cat FILE-| ncat HOST”的windows: 然后键入CTRL-Z或CTRL-C结束连接 注释
- “con”表示控制台输入,请参阅
- 它适用于二进制文件
-
告诉cat读取标准输入。它首先读取(并写入)MY_文件
,然后读取stdin。如果stdin是一个tty,那么它只会阻止来自键盘的输入。谢谢。然而,这并没有起作用,因为服务器端并没有使用nc,william所建议的就是这样。
echo MY_FILE | nc -q -1 192.168.0.1 9000
type FILE con | ncat HOST