Node.js UDP 广播服务器与客户端实现指南

作者:墨池

时间:2026-10-28

浏览:399

本文介绍如何使用 Node.js 的 dgram 模块实现 UDP 广播功能。通过创建服务器监听特定端口接收广播数据,以及配置客户端 socket.setBroadcast(true) 发送广播消息,展示了完整的代码示例。重点强调了在绑定 socket 成功后调用 setBroadcast 以避免 EBADF 错误的关键步骤。

文章目录

Node.js UDP 广播服务器实现

在 Node.js 中实现 UDP 广播相对简单。首先,我们需要编写一个服务器端代码来接收广播数据。

服务器端代码如下:

var dgram = require("dgram");
var server = dgram.createSocket("udp4");
server.on("error", function (err) {
 console.log("server error:\n" + err.stack);
 server.close();
});
server.on("message", function (msg, rinfo) {
 console.log("server got: " + msg + " from " +
 rinfo.address + ":" + rinfo.port);
});
server.on("listening", function () {
 var address = server.address();
 console.log("server listening " +
 address.address + ":" + address.port);
});
server.bind(41234);

Node.js UDP 广播客户端实现

接下来,我们编写一个客户端程序来发送广播消息。

客户端代码如下:

var dgram = require("dgram");
var socket = dgram.createSocket("udp4");
socket.bind(function () {
 socket.setBroadcast(true);
});
var message = new Buffer("Hi");
socket.send(message, 0, message.length, 41234, '255.255.255.255', function(err, bytes) {
 socket.close();
});

需要注意的是,socket.setBroadcast(true) 必须在 socket 绑定成功后调用,否则会抛出 Error: setBroadcast EBADF 错误。

客户端发送广播的操作相对简单,只需正确设置发送的数据内容和目标端口等信息即可。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章