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分页类代码分享
Jun 17 NodeJs
nodejs教程之入门
Nov 21 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 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
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python生成圆形图片的方法
2020/03/25 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
python贪吃蛇游戏代码
2020/04/18 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
高一学生评语大全
2014/04/25 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电