nodejs實(shí)現(xiàn)UDP組播示例方法
眾所周知,UDP數(shù)據(jù)傳輸方式有 單播,組播,廣播。
其中單播模式是最常用,這里就不再啰嗦了,網(wǎng)上隨便都能搜到。
下面的示例主要實(shí)現(xiàn)簡(jiǎn)單的UDP組播方式。可以正常收發(fā)UDP數(shù)據(jù)。
Server端代碼
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
// const local_ip = "192.168.0.xx";
const multicast_ip = "225.0.0.100"; // 這里必須是一個(gè)組播地址(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(); // 隨機(jī)綁定本機(jī)一個(gè)端口
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"; // 這里必須是一個(gè)組播地址(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)聽組播數(shù)據(jù)的端口
參考:
http://www.dhdzp.com/article/173468.htm
https://stackoverflow.com/questions/14130560/nodejs-udp-multicast-how-to
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Nodejs封裝類似express框架的路由實(shí)例詳解
在本篇文章里小編給大家整理的是關(guān)于Nodejs封裝類似express框架的路由實(shí)例內(nèi)容,有需要的朋友們學(xué)習(xí)下。2020-01-01
nodejs后臺(tái)集成ueditor富文本編輯器的實(shí)例
本篇文章主要介紹了nodejs后臺(tái)集成ueditor富文本編輯器的實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
node.js+postman+mongodb搭建測(cè)試注冊(cè)接口的實(shí)現(xiàn)
本文主要介紹了node.js+postman+mongodb搭建測(cè)試注冊(cè)接口的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
nodejs+axios爬取html出現(xiàn)中文亂碼并解決示例
這篇文章主要為大家介紹了nodejs+axios爬取html出現(xiàn)中文亂碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
淺析nodejs實(shí)現(xiàn)Websocket的數(shù)據(jù)接收與發(fā)送
WebSocket是HTML5開始提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),本文給大家介紹nodejs實(shí)現(xiàn)websocket的數(shù)據(jù)庫(kù)接收與發(fā)送,小伙伴們一起學(xué)習(xí)吧2015-11-11
NodeJS使用formidable實(shí)現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了NodeJS使用formidable實(shí)現(xiàn)文件上傳的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

