【问题标题】:Replicate data on one port to other ports将一个端口上的数据复制到其他端口
【发布时间】:2016-02-23 22:22:23
【问题描述】:
UDP(单播)数据正在单个端口上接收。我有一个需要收听这些数据的程序(封闭源代码工具,不是我创建的)。需要运行此工具的多个实例,并将相同的数据输入所有实例。不过,我只能让该工具的一个实例在任何时候侦听单个端口。
如何将在此端口上接收的数据复制到一组唯一端口,以便我可以使用该工具的多个实例?
我还没有找到解决方案来尝试报告我的问题。该解决方案可能是一个 NodeJS,它可以重新广播数据或可能在操作系统级别上可行。甚至路由器级别的端口转发?
【问题讨论】:
标签:
node.js
windows
networking
udp
【解决方案1】:
我通过创建一个 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'后就没有这个问题了。