将一个端口上的数据复制到其他端口
Replicate data on one port to other ports
正在单个端口上接收 UDP(单播)数据。我有一个程序(闭源工具,不是我创建的)需要收听这些数据。此工具的多个实例需要 运行,并将相同的数据输入所有实例。不过,我在任何时候都只能让该工具的一个实例侦听单个端口。
我如何将此端口上接收的数据复制到一组唯一端口,以便我可以使用该工具的多个实例?
我还没有找到解决方案来尝试报告我的问题。解决方案可能是一个 NodeJS 解决方案,它可以重新广播数据或可能在 OS 级别上可行。甚至路由器级别的端口转发?
我通过创建一个 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");
}
});
警告:如果您像我最初那样使用 'localhost' 作为 IP 目标,CPU 负载会变得很大。切换到“127.0.0.1”后我没有遇到这个问题。
正在单个端口上接收 UDP(单播)数据。我有一个程序(闭源工具,不是我创建的)需要收听这些数据。此工具的多个实例需要 运行,并将相同的数据输入所有实例。不过,我在任何时候都只能让该工具的一个实例侦听单个端口。
我如何将此端口上接收的数据复制到一组唯一端口,以便我可以使用该工具的多个实例?
我还没有找到解决方案来尝试报告我的问题。解决方案可能是一个 NodeJS 解决方案,它可以重新广播数据或可能在 OS 级别上可行。甚至路由器级别的端口转发?
我通过创建一个 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");
}
});
警告:如果您像我最初那样使用 'localhost' 作为 IP 目标,CPU 负载会变得很大。切换到“127.0.0.1”后我没有遇到这个问题。