我试图连续端口 5000 并打印第一行消息,但程序在一次迭代后停止。我正在使用以下命令-
nc -k -l 5000 | head -n 1
我已经使用-k 选项与 nc,但仍然程序在一次迭代后停止。
它不是那么简单。第二个nc
只能在前一个的full运行之后启动。但是它不能完成,因为nc
有一个错误:它无法检测远程端是否关闭其套接字。因此,第一个 nc 永远不会停止,因此第二个无法启动。
nc
的开发人员说,这是 TCP 协议的固有问题,我的观点是他们没有正确 [但这只是我的观点]。
如果你想做一个 TCP 端口的脚本,一个可行的解决方案是把这个head -1
放入一个脚本,并从 inetd 调用这个脚本。
一些棘手的黑客也可以工作,例如,杀死第一行之后的第一个nc
,所以:
nc -k -l 5000|(read;echo $REPLY;killall -9 nc)
Imho 这个工具对于生产环境来说不够稳定,尽管它们可能非常有趣。:-)
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(60条)