javascript - 监听特定端口时接收广播包

标签 javascript node.js networking udp broadcast

当通过 dgram.createSocket('udp4'); 设置套接字并且不将其绑定(bind)到特定端口时,我确实收到了发送到 255.255.255.255 的广播数据包 但是当我将同一个套接字绑定(bind)到我的接口(interface)的特定 IP 时 this.server.bind(67, host); 我将不会收到这些广播数据包。这是正常行为吗?

最佳答案

Javadoc for java.net.DatagramSocket说:

In order to receive broadcast packets a DatagramSocket should be bound to the wildcard address. In some implementations, broadcast packets may also be received when a DatagramSocket is bound to a more specific address.

这非常清楚地表明该行为是平台相关的,因此 Javascript 套接字会以同样的方式受到影响。

根据我的测试,Windows Vista 64 的行为与第二句中描述的不同(即不接收广播,除非绑定(bind)到 INADDR_ANY)。

关于javascript - 监听特定端口时接收广播包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270606/

相关文章:

javascript - Gatsby JS - 多个页面拉入不同类别的 Markdown 文件

javascript - 每个评论如何获得自己的框? (html、node.js)

linux - 设备如何通过数据链路层 2 交换数据?

javascript - 在 React 中使用不可变状态有什么缺点?

javascript - 使用 Google map 绘制查询的热门结果

javascript - 如何向用户发送大文件? Node Telegram Bot API

networking - 无需 NTP 的小尺寸时钟同步

android - 当互联网未连接时,Retrofit 会不断重试

javascript - 在 Node.js 中努力解决异步同步问题

node.js - Node 环回 updateAll 用另一个属性值更新属性