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

作者:墨池时间:2026-10-28 14:23:04浏览:400

本文介绍如何使用 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 错误。

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

作者最新文章