我有UDP网络流量到达我的机器(确切地说来自iPad的OSC流量),我希望两个程序能够接收该流量。问题是我无法同时使用两个程序绑定到同一个网络端口,而且我无法使用iOS应用程序发送到多个端口。我该如何解决这个问题?
答案 0 :(得分:2)
您可以使用命令行的强大功能。以下代码段使用socat
(可能需要事先安装)和tee
(应在任何OS X或Linux上预先安装)。
socat -u UDP4-RECVFROM:8123,fork - | tee >(socat -u - UDP4-SENDTO:localhost:8223) | socat -u - UDP4-SENDTO:localhost:8323
解释:socat
侦听UDP端口8123上的流量,将其传输到tee
,并将其传输到另外两个socat
转发到{{1}}的实例分别在localhost上的端口8223和8323。使用您的两个程序,您需要在localhost上侦听这些端口。
答案 1 :(得分:0)
虽然使用socat
的答案很优雅,但我不清楚你要做什么:
socat
方式总结:请描述您尝试解决的问题,而不仅仅是它的一个小技术细节。
答案 2 :(得分:0)
问题是我不能同时使用两个程序绑定到同一个网络端口
是的,你可以。在绑定之前,只需在它们上面设置SO_REUSEADDR
和SO_REUSEPORT
。