众所周知,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'); // 监听组播数据的端口
参考:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
网友评论