众所周知,UDP数据传输方式有 单播,组播,广播。
其中单播模式是最常用,这里就不再啰嗦了,网上随便都能搜到。
下面的示例主要实现简单的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'); // 监听组播数据的端口
参考:
https://www.jb51.net/article/173468.htm
https://stackoverflow.com/questions/14130560/nodejs-udp-multicast-how-to
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“nodejs实现UDP组播示例方法”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。