我使用此命令侦听端口并将数据转储到文件:
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
Run Code Online (Sandbox Code Playgroud)
第一个请求完美无缺,它被转储到 log.txt 中,但是在第一次请求之后,nc 不再监听而是停止了。
有人可以指出我做错了什么吗?
我只是希望它在后台连续运行并将来自该端口的任何请求记录到 log.txt 文件中...
Mar*_*iae 19
您必须向nc添加一个选项。该选项取决于您运行的nc版本。例如,在我的情况下(Kubuntu),选项是-k。从手册页,
-k 强制 nc 在其当前连接完成后继续侦听另一个连接。在没有 -l 选项的情况下使用此选项是错误的。
我不能保证-k有效(当然,除非你是 Ubuntu),你将不得不搜索类似的东西。例如,在我的 Debian 上,-k不存在,但您会发现:
-q seconds 在 stdin 上的 EOF 之后,等待指定的秒数然后退出。如果秒为负,则永远等待
编辑:
要检查它是否有效,请在一台电脑上:
nc -k -l 0.0.0.0 10000 > out.txt
Run Code Online (Sandbox Code Playgroud)
在第二台电脑上:
echo Hello | nc IP_address_of_first_pc 10000
Run Code Online (Sandbox Code Playgroud)
多次发出上述命令,然后中断pc1上的nc命令,检查out.txt中的行数。
| 归档时间: |
|
| 查看次数: |
40771 次 |
| 最近记录: |