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 url验证(url-valid)的使用方法
Nov 18 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs中Express与Koa2对比分析
Feb 06 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 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 默默经典版本
2009/08/04 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php数组遍历类与用法示例
2019/05/24 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
回顾Javascript React基础
2019/06/15 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
Python线性拟合实现函数与用法示例
2018/12/13 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
战略合作协议书范本
2014/04/18 职场文书
应届生求职信
2014/05/31 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
小学新课改心得体会
2016/01/22 职场文书