nodejs实现UDP组播示例方法
- 作者: 阿姆斯特郎回旋加速喷气式阿姆斯特郎炮
- 来源: 51数据库
- 2021-08-25
众所周知,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'); // 监听组播数据的端口
参考:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
