以下是一些关于 Node.js 中 UDP/Datagram 的基本用法:
1. 创建 UDP 服务器:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
const address = server.address();
console.log(`UDP Server listening on ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`Received message: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
server.bind(3000); // 绑定到端口 3000
2. 创建 UDP 客户端:
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const message = Buffer.from('Hello, UDP server!');
client.send(message, 3000, 'localhost', (err) => {
if (err) {
console.error(err);
client.close();
} else {
console.log('Message sent to the server');
}
});
3. 多播(Multicast):
UDP 还支持多播,允许将数据发送到多个目标。
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('listening', () => {
server.addMembership('239.255.255.250'); // 添加到多播组
const address = server.address();
console.log(`UDP Server listening on ${address.address}:${address.port}`);
});
server.on('message', (msg, rinfo) => {
console.log(`Received multicast message: ${msg} from ${rinfo.address}:${rinfo.port}`);
});
server.bind(1900, '0.0.0.0'); // 绑定到端口 1900 和所有可用网络接口
4. 详细配置:
可以通过设置 options 参数来详细配置 UDP 客户端和服务器,例如允许广播、设置 TTL(Time To Live)等。
const dgram = require('dgram');
// UDP 服务器配置
const server = dgram.createSocket({
type: 'udp4',
reuseAddr: true
});
// UDP 客户端配置
const client = dgram.createSocket({
type: 'udp4',
reuseAddr: true,
broadcast: true
});
以上是基本的 UDP 服务器和客户端的用法。UDP 适用于需要快速传输数据但不要求可靠性的场景,如音视频传输、实时游戏等。在实际应用中,你可以根据具体需求使用 UDP 来满足不同的通信需求。
转载请注明出处:http://www.zyzy.cn/article/detail/4785/Node.js