Shu*_*ams 6 linux multiplexing socat
我有一个传入的视频流,我想设置多个进程来处理它,每个进程都在自己的地址上运行。经过一些阅读后,似乎socat是一种方法来做到这一点
socat TCP4-LISTEN:1934,fork,reuseaddr TCP4:someaddress:1935
Run Code Online (Sandbox Code Playgroud)
这会将所有内容转发到目标地址,但它只允许我绑定一个目标。有没有办法用socat绑定多个目标地址?如果我尝试多个单独的绑定,我会在后续绑定中收到“地址已在使用中”错误。我没有被迫使用 socat,如果有人知道更好的方法,任何可以让我复制传入流的东西都是好的。谢谢。
根据我之前的评论,我刚刚测试了这个解决方案 [1] 并且它按预期工作,如果我理解你的需求:
socat -u tcp4-listen:1934 - | tee >(socat - tcp4:127.0.0.1:1935) >(socat - tcp4:127.0.0.1:1936) > /dev/null
Run Code Online (Sandbox Code Playgroud)
在启动之前,必须有进程已经在 1935 和 1936 上侦听,否则socat右边的会抱怨。
这仍然是一个非常脆弱的解决方案。我建议尝试替代路线,例如临时缓存文件或管道。
[1] 像这样:
nc -l 127.0.0.1 1935 在一个壳里nc -l 127.0.0.1 1936 在另一个壳中echo "foobar" | nc 127.0.0.1 1934| 归档时间: |
|
| 查看次数: |
8059 次 |
| 最近记录: |