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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
详解nodejs 配置文件处理方案
Jan 02 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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一个找二层目录的小东东
2012/08/02 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
php实现映射操作实例详解
2019/10/02 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
jsonp跨域及实现百度首页联想功能的方法
2018/08/30 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
解决pip install的时候报错timed out的问题
2018/06/12 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python网络应用开发知识点浅析
2019/05/28 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
暑期实习鉴定
2013/12/16 职场文书
教师实习自我鉴定
2013/12/18 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
初中英语课后反思
2014/04/25 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
员工工作表现自我评价
2015/03/06 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
SQL Server连接查询的实用教程
2021/04/07 SQL Server
代码解析React中setState同步和异步问题
2021/06/03 Javascript
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript