Unix 使用socat多播mpeg-2流

Unix 使用socat多播mpeg-2流,unix,udp,socat,Unix,Udp,Socat,我有一个破碎的ts文件,其中包含一些MPEG-2流,偶尔有故意的数据包错误。其思想是在我试图构建的另一个应用程序上分析流并检测错误 如果我使用socat作为 它正确地发送该套接字上的文件内容,我可以在客户端应用程序中侦听该端口以分析传输流数据包。现在,我希望我的应用程序也支持多播 socat -u open:test.ts udp:239.48.208.1:1234 sleep 0.001 并在我的应用程序上侦听该多播地址。我什么也没收到。因为我知道多播地址在我的防火墙内是有效的,所以我假设这

我有一个破碎的ts文件,其中包含一些MPEG-2流,偶尔有故意的数据包错误。其思想是在我试图构建的另一个应用程序上分析流并检测错误

如果我使用socat作为

它正确地发送该套接字上的文件内容,我可以在客户端应用程序中侦听该端口以分析传输流数据包。现在,我希望我的应用程序也支持多播

socat -u open:test.ts udp:239.48.208.1:1234
sleep 0.001
并在我的应用程序上侦听该多播地址。我什么也没收到。因为我知道多播地址在我的防火墙内是有效的,所以我假设这是一个socat首先不发送任何数据包的问题。所以,我认为这不是使用socat通过网络发送文件内容的正确方法


不过,它不必是MPEG-2流。我只是想知道如何在特定的多播地址和端口上多播二进制文件的内容。

我没有尝试过这一点,但是socat的作者Gerhard Rieger给出了许多详细的例子。第一个示例是公共网络192.168.10.*上的多播客户端和多个接收服务器。客户端192.168.10.1发送到多播地址,接收 服务器可以发送响应包。在任何服务器上,例如192.168.10.2,我们都有

socat UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:192.168.10.2,fork EXEC:hostname
这意味着接收到224.1.0.1的多播,并为每个数据包分叉一个进程。进程(例如主机名)可以发送一个或多个回复数据包。192.168.10.2是接收的接口(因此每台服务器上的接口不同);请参阅socat手册页,了解
ip添加成员资格

在我们的发送客户端上

socat STDIO UDP4-DATAGRAM:224.1.0.1:6666,range=192.168.10.0/24

它将数据从stdin发送到多播。它将打印收到的任何回复。

我没有尝试过,但socat的作者Gerhard Rieger提供了许多详细的例子。第一个示例是公共网络192.168.10.*上的多播客户端和多个接收服务器。客户端192.168.10.1发送到多播地址,接收 服务器可以发送响应包。在任何服务器上,例如192.168.10.2,我们都有

socat UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:192.168.10.2,fork EXEC:hostname
这意味着接收到224.1.0.1的多播,并为每个数据包分叉一个进程。进程(例如主机名)可以发送一个或多个回复数据包。192.168.10.2是接收的接口(因此每台服务器上的接口不同);请参阅socat手册页,了解
ip添加成员资格

在我们的发送客户端上

socat STDIO UDP4-DATAGRAM:224.1.0.1:6666,range=192.168.10.0/24
它将数据从stdin发送到多播。它将打印收到的任何答复