nodejs dgram模塊廣播+組播的實(shí)現(xiàn)示例
本機(jī)IP地址是10.8.93.80,

具體信息如上圖所示
根據(jù)計(jì)算得知我的廣播地址應(yīng)該是10.8.93.255,不是10.8.93.254哦。
其它內(nèi)容就直接上代碼
server.js
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
const multicastAddr = '224.100.100.100';
server.on('close', () => {
console.log('socket已關(guān)閉');
});
server.on('error', (err) => {
console.log(err);
});
server.on('listening', () => {
console.log('socket正在監(jiān)聽(tīng)中...');
server.addMembership(multicastAddr); // 不寫(xiě)也行
server.setBroadcast(true);
server.setMulticastTTL(128);
setInterval(() => {
sendMsg();
}, 1500);
});
server.on('message', (msg, rinfo) => {
console.log(`receive client message from ${rinfo.address}:${rinfo.port}`);
});
function sendMsg() {
console.log('sending');
server.send('大家好啊,我是服務(wù)端廣播消息', 8061, '10.8.93.255');
server.send('大家好啊,我是服務(wù)端組播消息', 8061, multicastAddr);
}
server.bind('8060'); // 此處填寫(xiě)IP后無(wú)法組播
client.js
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
const multicastAddr = '224.100.100.100';
client.on('close', () => {
console.log('socket已關(guān)閉');
});
client.on('error', (err) => {
console.log(err);
});
client.on('listening', () => {
console.log('socket正在監(jiān)聽(tīng)中...');
client.addMembership(multicastAddr);
});
client.on('message', (msg, rinfo) => {
console.log(`receive server message from ${rinfo.address}:${rinfo.port}:${msg}`);
});
client.bind(8061); // 此處必須綁定自己的局域網(wǎng)IP或者不填,填localhost是不行的
代碼中我的服務(wù)器是綁定的8060端口,向廣播地址的8061端口發(fā)送廣播,故意改成不一樣的是為了本機(jī)的客戶端也能夠接收試試,不然不就端口占用了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ChatGPT編程秀之最小元素的設(shè)計(jì)示例詳解
這篇文章主要為大家介紹了ChatGPT編程秀之最小元素的設(shè)計(jì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Win7系統(tǒng)只能安裝的nodejs13.14,如何安裝高版本nodejs
正常情況下,Win7支持的Node.js最高版本是V13.14,但在開(kāi)發(fā)過(guò)程中,有不少Vue項(xiàng)目或其他需要依賴Node環(huán)境的項(xiàng)目,對(duì)Node版本要求都比較高,對(duì)此,我們要么重裝操作系統(tǒng)到Win8以上,要么就得想辦法在Win7中安裝高版本的Node,否則很多項(xiàng)目在編譯打包時(shí)可能會(huì)出現(xiàn)警告信息或失敗2024-11-11
Nodejs實(shí)現(xiàn)多房間簡(jiǎn)易聊天室功能
本文通過(guò)實(shí)例代碼給大家介紹了Nodejs實(shí)現(xiàn)多房間簡(jiǎn)易聊天室功能,需要的朋友參考下吧2017-06-06
node.js中的http.response.write方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.response.write方法使用說(shuō)明,本文介紹了http.response.write的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
了不起的node.js讀書(shū)筆記之mongodb數(shù)據(jù)庫(kù)交互
這篇文章主要介紹了了不起的node.js讀書(shū)筆記之mongodb數(shù)據(jù)庫(kù)交互,需要的朋友可以參考下2014-12-12
Nest.js Controller路由和請(qǐng)求處理強(qiáng)大功能解析
這篇文章主要為大家,介紹了Nest.js Controller路由和請(qǐng)求處理強(qiáng)大功能解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
node-sass常見(jiàn)報(bào)錯(cuò)的問(wèn)題及解決方法
在安裝node-sass時(shí),經(jīng)常會(huì)遇到下載慢、版本不匹配或python錯(cuò)誤等問(wèn)題,使用淘寶鏡像加速下載、通過(guò)nvm管理node版本或指定node-sass版本號(hào)安裝,都能有效解決這些問(wèn)題,若遇到python相關(guān)錯(cuò)誤,檢查node版本是否合適通常可以解決,感興趣的朋友一起看看本文吧2024-09-09

