加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – socat转发到多个地址

发布时间:2020-12-14 02:48:00 所属栏目:Linux 来源:网络整理
导读:我有一个传入的视频流,我想设置多个进程来处理它,每个进程都在自己的地址运行.经过一番阅读后,似乎socat就是这样做的一种方式 socat TCP4-LISTEN:1934,fork,reuseaddr TCP4:someaddress:1935 这会将所有内容转发到目标地址,但它只允许我绑定一个目标.有没有
我有一个传入的视频流,我想设置多个进程来处理它,每个进程都在自己的地址运行.经过一番阅读后,似乎socat就是这样做的一种方式
socat TCP4-LISTEN:1934,fork,reuseaddr TCP4:someaddress:1935

这会将所有内容转发到目标地址,但它只允许我绑定一个目标.有没有办法用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

在启动之前,必须有已经在1935年和1936年已经听过的流程,否则右边的社会会抱怨.

这仍然是一个非常脆弱的解决方案.我建议尝试替代路由,如临时缓存文件或管道.

[1]那样:

> nc -l 127.0.0.1 1935 in a shell>另一个shell中的nc -l 127.0.0.1 1936>上面第三个shell中的命令>然后在第四个:echo“foobar”| nc 127.0.0.1 1934>我确实在第一和第二个shell的输出中看到“foobar”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读