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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
使用nodejs、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
nodejs require js文件入口,在package.json中指定默认入口main方法
Oct 10 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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&java(二)
2006/10/09 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python 监测文件是否更新的方法
2019/06/10 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
python退出循环的方法
2020/06/18 Python
python如何实时获取tcpdump输出
2020/09/16 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
简历的自荐信
2013/12/19 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
个人授权委托书格式
2014/08/30 职场文书
收费员岗位职责
2015/02/14 职场文书
开会通知
2015/04/20 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
php修改word的实例方法
2021/11/17 PHP
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python