前言
最近有个项目,要求实现信息分发,大概意思是经过了各种交换机和电台,经过两个信息分发软件实现udp数据的转发,可能包括文本、指令、音视频等数据。 例如:设备1 《---》 设备2(信息分发软件1) 《---》电台1 《---》电台2 《---》 设备3(信息分发软件2)《---》 设备4 。
实现
如果使用纯QT去实现,那这还是有点复杂的,于是就在想,是否可以使用gstreamer的udpsrc和udpsink实现转发? 于是尝试了一下,发现确实是可行的,命令如下:
gst-lauch-1.0 udpsrc port=8001 ! udpsink host=127.0.0.1 port=8004
以上的命令是将接受到8001端口的数据,转发到8004.
使用串口调试助手,同时打开俩,一个向8001发送,一个接收自8004,实现效果:
当然,也可以一条命令,实现双向传输: