在单个端口上接收UDP(单播)数据。我有一个需要监听这些数据的程序(闭源工具,不是由我创建的)。需要运行此工具的多个实例,并将相同的数据输入所有实例。我只能在任何时候有一个工具实例监听单个端口。
如何将此端口上接收的数据复制到一组唯一端口,以便我可以使用该工具的多个实例?
我还没有找到解决方案来尝试报告我的问题。解决方案可能是NodeJS重新广播数据或可能在操作系统级别上执行的解决方案。甚至可能是路由器级别的portforwarding?
答案 0 :(得分:0)
我通过创建一个NodeJS服务器来监听UDP端口,然后将数据重新发送到我想要的端口来解决这个问题。
var portMappings = [5000,5001,5002];
server.on('message', function(msg,rinfo){
for(var i = 0; i < portMappings.length; i++)
{
server.send(msg,0,msg.length,portMappings[i],"127.0.0.1");
}
});
警告:如果您使用&#39; localhost&#39;对于像我最初那样的IP目的地,CPU负载变得庞大。切换到&#39; 127.0.0.1&#39;后,我没有遇到此问题。