NodeJS如何广播一个UDP数据包
NodeJS How to broadcast a UDP packet
要广播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查了一下,没有广播消息。
我做错了什么?
255.255.255.255 并不意味着完全广播。
所以我应该得到像下面这样的本地广播地址。
广播地址=(~子网掩码)| (主机的 IP 地址)
改为255.255.255.255,使用192.168.0.255,UDP广播可以成功。
要广播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查了一下,没有广播消息。
我做错了什么?
255.255.255.255 并不意味着完全广播。 所以我应该得到像下面这样的本地广播地址。
广播地址=(~子网掩码)| (主机的 IP 地址)
改为255.255.255.255,使用192.168.0.255,UDP广播可以成功。