从节点red发送UDP包时是否可以设置源IP

问题描述 投票:0回答:1

我在 ubuntu 服务器上运行 Node Red,并且我已将其中一个网络适配器配置为具有多个 IP 地址,如下所示:

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
       dhcp4: no
       addresses:
         - 192.168.25.9/24
         - 192.168.25.23/24
         - 192.168.25.43/24
         - 192.168.25.45/24
         - 192.168.25.67/24
  version: 2

我的想法是想用node red来模拟几个控制器,不同的IP地址对应控制器的IP地址。

在红色节点中,我使用 UDP 输出节点发送数据包并响应心跳通信,但我还没有找到一种方法来专门从 IP

192.168.25.43
等发送数据包。 我读过一些关于使用
bind 
调用来指定源地址的内容,但我还没有弄清楚它是如何工作的。

我找到了this帖子,但我不明白,如果我尝试编码,我会收到此错误:

TypeError: Cannot read properties of undefined (reading 'createSocket')

node.js udp node-red static-ip-address
1个回答
0
投票

UDP节点不允许设置源IP地址。

只能设置 3 个值:目标 IP 地址、端口和源端口。

链接到的讨论帖子是使用函数节点发送UDP数据包,它首先通过编辑

dgram
文件将settings.js类绑定到
全局上下文
,然后允许调用
bind()
方法 这将允许设置源IP地址(尽管代码仅显示设置源端口,而不是IP地址)

© www.soinside.com 2019 - 2024. All rights reserved.