nodejs實現UDP組播示例

眾所周知,UDP數據傳輸方式有 單播,組播,廣播。
其中單播模式是最常用,這里就不再啰嗦了,網上隨便都能搜到。

下面的示例主要實現簡單的UDP組播方式??梢哉J瞻l(fā)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');  // 監(jiān)聽組播數據的端口

參考:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容