我有一个封闭的第三方系统发送一个单播UDPstream(MPEG-TS),我想在同一台计算机上的两个不同的程序访问。 我不能改变任何来源,甚至没有IP或端口。
有没有其他的select,而不是写我自己的小程序捕捉stream,然后创build新的stream,并重新发送?
看来只有两个目标程序中的一个处理多播,所以我需要两个单播stream。
您应该可以使用socat
将单播UDP转发到多播组,或者将数据保存到文件中并稍后处理。
这里是一个例子(这是在Linux上 – 没有任何Windows框)。 监听单播端口4242
,转发到组播224.10.10.10:5252
(如果你在同一台机器上做所有事情,你可能需要添加ip-multicast-loop
选项):
~$ socat UDP-LISTEN:4242 UDP-DATAGRAM:224.10.10.10:5252
接收多播(需要接口地址或名称),转发到单播192.168.0.1:6666
:
~$ socat UDP-RECVFROM:5252,ip-add-membership=224.10.10.10:eth0,reuseaddr,fork \ UDP-DATAGRAM:192.168.0.1:6666
运行上面两个不同的目标地址( reuseaddr
选项允许这些在同一台机器上运行)。