nodejs dgram模块广播+组播的实现示例

 更新时间:2019年11月04日 09:40:07   作者:普若木特  
这篇文章主要介绍了nodejs dgram模块广播+组播的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本机IP地址是10.8.93.80,

具体信息如上图所示

根据计算得知我的广播地址应该是10.8.93.255,不是10.8.93.254哦。

其它内容就直接上代码

server.js

const dgram = require('dgram');
const server = dgram.createSocket('udp4');
const multicastAddr = '224.100.100.100';

server.on('close', () => {
 console.log('socket已关闭');
});

server.on('error', (err) => {
 console.log(err);
});

server.on('listening', () => {
 console.log('socket正在监听中...');
 server.addMembership(multicastAddr); // 不写也行
 server.setBroadcast(true);
 server.setMulticastTTL(128);
 setInterval(() => {
  sendMsg();
 }, 1500);
});

server.on('message', (msg, rinfo) => {
 console.log(`receive client message from ${rinfo.address}:${rinfo.port}`);
});

function sendMsg() {
 console.log('sending');
 server.send('大家好啊,我是服务端广播消息', 8061, '10.8.93.255');
 server.send('大家好啊,我是服务端组播消息', 8061, multicastAddr);
}

server.bind('8060'); // 此处填写IP后无法组播

client.js

const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const multicastAddr = '224.100.100.100';

client.on('close', () => {
 console.log('socket已关闭');
});

client.on('error', (err) => {
 console.log(err);
});
client.on('listening', () => {
 console.log('socket正在监听中...');
 client.addMembership(multicastAddr);
});
client.on('message', (msg, rinfo) => {
 console.log(`receive server message from ${rinfo.address}:${rinfo.port}:${msg}`);
});
client.bind(8061); // 此处必须绑定自己的局域网IP或者不填,填localhost是不行的

代码中我的服务器是绑定的8060端口,向广播地址的8061端口发送广播,故意改成不一样的是为了本机的客户端也能够接收试试,不然不就端口占用了。

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

相关文章

  • 一步步教你利用Docker设置Node.js

    一步步教你利用Docker设置Node.js

    这篇文章主要介绍了利用Docker设置Node.js的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • NodeJs中的VM模块详解

    NodeJs中的VM模块详解

    这篇文章主要介绍了NodeJs中的VM模块详解,本文讲解了什么是VM? 、VM模块的runInThisContext、runInThisContext方法等内容,需要的朋友可以参考下
    2015-05-05
  • 一文详解如何在IDEA中配置Node.js

    一文详解如何在IDEA中配置Node.js

    idea中支持运行很多种编程语言,只需要在电脑中安装好对应的语言环境,下面这篇文章主要给大家介绍了关于如何在IDEA中配置Node.js的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • ChatGPT编程秀之最小元素的设计示例详解

    ChatGPT编程秀之最小元素的设计示例详解

    这篇文章主要为大家介绍了ChatGPT编程秀之最小元素的设计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Win7系统只能安装的nodejs13.14,如何安装高版本nodejs

    Win7系统只能安装的nodejs13.14,如何安装高版本nodejs

    正常情况下,Win7支持的Node.js最高版本是V13.14,但在开发过程中,有不少Vue项目或其他需要依赖Node环境的项目,对Node版本要求都比较高,对此,我们要么重装操作系统到Win8以上,要么就得想办法在Win7中安装高版本的Node,否则很多项目在编译打包时可能会出现警告信息或失败
    2024-11-11
  • Nodejs实现多房间简易聊天室功能

    Nodejs实现多房间简易聊天室功能

    本文通过实例代码给大家介绍了Nodejs实现多房间简易聊天室功能,需要的朋友参考下吧
    2017-06-06
  • node.js中的http.response.write方法使用说明

    node.js中的http.response.write方法使用说明

    这篇文章主要介绍了node.js中的http.response.write方法使用说明,本文介绍了http.response.write的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 了不起的node.js读书笔记之mongodb数据库交互

    了不起的node.js读书笔记之mongodb数据库交互

    这篇文章主要介绍了了不起的node.js读书笔记之mongodb数据库交互,需要的朋友可以参考下
    2014-12-12
  • Nest.js Controller路由和请求处理强大功能解析

    Nest.js Controller路由和请求处理强大功能解析

    这篇文章主要为大家,介绍了Nest.js Controller路由和请求处理强大功能解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • node-sass常见报错的问题及解决方法

    node-sass常见报错的问题及解决方法

    在安装node-sass时,经常会遇到下载慢、版本不匹配或python错误等问题,使用淘宝镜像加速下载、通过nvm管理node版本或指定node-sass版本号安装,都能有效解决这些问题,若遇到python相关错误,检查node版本是否合适通常可以解决,感兴趣的朋友一起看看本文吧
    2024-09-09

最新评论