NodeJS如何广播一个UDP数据包

3
要将UDP广播到端口65123,我编写了以下代码。
    let broadcastClient = dgram.createSocket('udp4')
    broadcastClient.on('listening', () => {
      console.log('now listening...')
      broadcastClient.setBroadcast(true)

      const msg = Buffer.from('helele')
      setInterval(() => {
        console.log('send message')
        broadcastClient.send(msg, 65123, '255.255.255.255', (err, bytes) => {
          if (err) console.error('broadcast error', err)
          if (bytes) console.log('bytes', bytes)
        })
      }, 300)
    })
    broadcastClient.bind(65120)

日志显示消息已正确发送。

但是,我使用Wireshark检查后发现没有广播消息。

enter image description here

我做错了什么?

1个回答

0

255.255.255.255并不代表完全广播。

因此,我应该像下面这样获取本地广播地址。

广播地址=(~子网掩码)|(主机的IP地址)

使用192.168.0.255而不是255.255.255.255,可以成功进行UDP广播。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接