【问题标题】:How to send stdout of one Python program over UDP to stdin of another using BASH?如何通过 UDP 将一个 Python 程序的标准输出发送到另一个使用 BASH 的标准输入?
【发布时间】:2022-01-14 15:13:08
【问题描述】:

我在 Ubuntu 盒子 A 上运行 foo.py,我想将其 stdout 作为 stdin 提供给在 Ubuntu 盒子 B 上运行的 bar.py

我认为python foo.py | /dev/udp/12.34.56.78:1234 会从盒子 A 发送到盒子 B,但我怎样才能拿起数据包并将它们输入 bar.py

我需要udp_listener localhost:1234 | bar.py 之类的东西,但是(如果正确的话)实际语法是什么?

【问题讨论】:

  • 试试 netcat (nc) 或 socat。例如,使用 netcat 只需 nc -u -l 127.0.0.1 1234 | bar.py。请注意,UDP 不是一个可靠的协议,即数据包可能会丢失、重新排序、重复

标签: python linux bash ubuntu udp


【解决方案1】:

在你的 Ubuntu 机器 B 上,运行

nc -klu -p 1234 | cat

在你的 Ubuntu 机器 A 上,运行

echo "Hello world" > /dev/udp/12.34.56.78/1234

如果可行,请将cat 替换为bar.py 并将echo "Hello world" 替换为python foo.py

您可能需要为 boxB:1234/udp 打开防火墙

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 2018-12-13
    相关资源
    最近更新 更多