nc 意外卡住

nc 意外卡住

我期望的是这样的:

nc -l localhost 7000 </dev/null &
nc localhost 7000 </etc/profile

和这个

nc -l localhost 7000 </etc/profile &
nc localhost 7000 </dev/null

在打印 my 后完成,/etc/profile 但两个命令组最终都陷入困境(第一种情况下两个进程;在第二种情况下,服务器完成但客户端没有)。

为什么命令没有完成?

nc这是我的/Linux (4.15)中的错误吗?我在 MacOS 和 Cygwin 上尝试过,只有 Linux 命令没有完成。

答案1

我使用的是 netcat 而不是 gnu-netcat;我不确定您使用的是什么版本,但如果是 gnu-netcat,选项可能会有所不同。

我有一个-q选择:

-q seconds检测到EOF后,等待指定秒数然后退出

所以,如果我这样做:

$ nc -l localhost -p 7000 -q 0 < /etc/passwd

其次是:

$ nc localhost 7000

/etc/passwd然后我在第二个终端上获取 的内容,并且两个实例都nc终止。

相关内容