首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux。netcat + bash

Linux。netcat + bash
EN

Stack Overflow用户
提问于 2017-01-04 19:57:58
回答 1查看 438关注 0票数 0

我有一个bash脚本:

代码语言:javascript
复制
#!/bin/bash
while :
    do
        nc -l -p 30003 | python3 script.py 
    done

我想让倾听一直起作用。

nc本地主机30003 # works,精键入某样东西Ctrl+C

再试一次nc localhost 30003 #不工作

所以,当套接字第一次关闭之后,它再也不会打开了..

我怎么才能修好它?

  • 此外,我在python脚本中有许多已定义的函数,所以我不想从一开始就运行它。有可能吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41472244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档