nodejs实现UDP组播示例方法


Posted in NodeJs onNovember 04, 2019

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

其中单播模式是最常用,这里就不再??铝耍??纤姹愣寄芩训健?/p>

下面的示例主要实现简单的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'); // 监听组播数据的端口

参考:

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

NodeJs 相关文章推荐
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
Feb 04 NodeJs
Nodejs从有门道无门菜鸟起飞必看教程
Jul 20 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 #NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 #NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 #NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 #NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 #NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 #NodeJs
nodejs实现聊天机器人功能
Sep 19 #NodeJs
You might like
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
axios实现文件上传并获取进度
2020/03/25 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python中is与==判断的区别
2017/03/28 Python
python模块之time模块(实例讲解)
2017/09/13 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
python和php哪个更适合写爬虫
2020/06/22 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
什么是索引指示器
2012/08/20 面试题
教师实习的自我鉴定
2013/10/26 职场文书
党员承诺书内容
2014/03/26 职场文书
小组口号大全
2014/06/09 职场文书
生日寿星公答谢词
2015/09/29 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android