网络编程 
首页 > 网络编程 > 浏览文章

nodejs实现UDP组播示例方法

(编辑:jimmy 日期: 2024/11/9 浏览:3 次 )

众所周知,UDP数据传输方式有 单播,组播,广播。

其中单播模式是最常用,这里就不再啰嗦了,网上随便都能搜到。

下面的示例主要实现简单的UDP组播方式。可以正常收发UDP数据。

Server端代码

const dgram = require('dgram');
const server = dgram.createSocket('udp4');

// const local_ip = "192.168.0.xx";
const multicast_ip = "225.0.0.100"; // 这里必须是一个组播地址(D类IP地址)

server.on('close', ()=>{
  console.log('close socket');
});

server.on('listening', ()=>{
  console.log('listening...');
  server.setBroadcast(true);
  server.setMulticastTTL(128);
  server.addMembership(multicast_ip);

  setInterval(()=>{
    send_msg();
  }, 2000);
});

server.on('message', (msg, rinfo)=>{
  console.log(`receive client message from ${rinfo.address}: ${rinfo.port}: ${msg}`);
});

server.bind(); // 随机绑定本机一个端口

function send_msg(){
  console.log('send msg');
  server.send('hi, im server...', '8062', multicast_ip);
}

Client端代码:

const dgram = require('dgram');
var client = dgram.createSocket('udp4');

// const local_ip = '192.168.0.xx';
const multicast_ip = "225.0.0.100";  // 这里必须是一个组播地址(D类IP地址)

client.on('close', ()=>{
  console.log('client closed');
});

client.on('error', (err) =>{
  console.log('client error' + err);
});

client.on('listening', ()=>{
  console.log('client listening...');
  client.setBroadcast(true);
  client.setMulticastTTL(128);
  client.addMembership(multicast_ip);
});

client.on('message', (msg, rinfo) => {
  console.log(`receive server message from ${rinfo.address}: ${rinfo.port}: ${msg}`);
});
client.bind('8062'); // 监听组播数据的端口

参考:

https://www.jb51.net/article/173468.htm
https://stackoverflow.com/questions/14130560/nodejs-udp-multicast-how-to

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:Vue项目中Api的组织和返回数据处理的操作
下一篇:nodejs dgram模块广播+组播的实现示例
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。