首页 > 解决方案 > NodeJS UDP 一台服务器多客户端和端口,有助于理解端口行为

问题描述

如果您正在阅读本文,请提前感谢您的帮助。

我有一个我写的代码,它正在工作。至少它完美地完成了我所需要的。但我认为它可能会对我的 WIFI 网络产生一些副作用。NODEJS 中的脚本会定期向通过 wifi 连接的不同设备发送 udp 数据包。设备从不响应该数据包,但我故意让“服务器”脚本向设备发送更新的信息并“忘记”它发送的内容。我有一个数据包发送计划,例如,每 100 毫秒。但我需要让东西尽可能轻。我的内容是 29 字节长。我的设备编号可能会有所不同。代码类似于这样的伪代码:

const client = dgram.createSocket('udp4');
for (z=1 , z== numberOfDevices, z++){
   if (sendFlag === 1) {
       client.send(NONE, 21324, myArgs[z], (err) => {});
   }
}

甚至跳过了错误捕获,因为这对我来说并不重要。我希望它“盲目地”工作。我只创建一次“客户端”,从不调用“client.close();” 因为如果我这样做,每个数据包都会生成一个新的输出端口,我猜它对路由器和运行节点脚本的机器都没有好处。

如果我不调用 client.close(),就像现在一样,输出端口始终保持不变。但即使目标 IP 地址发生变化,它也将保持不变。比如:端口 50100 到 IP1 端口 50100 到 IP2 端口 50100 到 IP3 等等......如果我运行脚本很长一段时间,我不知道这是否会对路由器产生任何影响,比如 10 小时wifi连接变得非常慢。即使在我停止服务器之后。如果路由器重新启动并且我运行脚本,一切都非常好而且很快。

我想让这样的事情发生:端口 50101 到 IP1 端口 50101 到 IP2 端口 50103 到 IP3 等等......脚本运行的所有时间。这似乎 server.bind 可以帮助我,比如为每个 ip 绑定一个端口,但我不擅长编码,我根本无法让它像那样工作。如果有人可以帮助我,我将无法感谢你!Nodejs 脚本示例非常基于客户端-> 两个设备之间的服务器通信,在这种情况下,我需要一对多,但我找不到可以从中学习的体面资源。

附带的问题是,发送到多个客户端的相同源端口是否会对网络产生影响。谢谢!

标签: node.jsudpportwifione-to-many

解决方案


推荐阅读