我有一个bash脚本:
#!/bin/bash
while :
do
nc -l -p 30003 | python3 script.py
done我想让倾听一直起作用。
nc本地主机30003 # works,精键入某样东西Ctrl+C
再试一次nc localhost 30003 #不工作
所以,当套接字第一次关闭之后,它再也不会打开了..
我怎么才能修好它?
谢谢。
发布于 2017-01-04 22:30:57
问题是nc -l -p 30003在python3 script.py完成之前不会再次运行。在Ctrl+C之后,nc本地主机30003没有可连接的侦听nc。如果用cat替换python3 script.py,nc服务器将重新启动。因此,简单的解决方案是让script.py退出。
我假设你有一个你想要保存的状态。一种可能是拥有一个状态(变量等)的文件。保存为JSON。另一种方法是让nc将输出写入文件,并从该文件读取script.py。
如果您有时间,并想学习一些网络,我建议您看看python。您可以让script.py充当服务器,直接从连接端点读取数据,而不是通过nc。
希望这能有所帮助。
https://stackoverflow.com/questions/41472244
复制相似问题