美文网首页程序员coding
nodejs实现UDP组播示例

nodejs实现UDP组播示例

作者: mapoor | 来源:发表于2019-11-01 13:35 被阅读0次

众所周知,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');  // 监听组播数据的端口

参考:

相关文章

  • nodejs实现UDP组播示例

    众所周知,UDP数据传输方式有 单播,组播,广播。其中单播模式是最常用,这里就不再啰嗦了,网上随便都能搜到。 下面...

  • Python 实现udp组播

    有关知识基本概念单播:两个主机间单对单的通信广播:一个主机对整个局域网上所有主机上的数据通信(网络地址全1)单播和...

  • 网络通讯

    UDP UDP多播 多播(组播)的概念多播,也称为“组播”,将网络中同一业务类型主机进行了逻辑上的分组,进行数据收...

  • UDP组播

    使用哪种协议实现 udp 不用保证数据可靠性,传输速度快;并且一般tcp是不用于多播场景的;那使用udp如何实现呢...

  • UDP

    Linux C编程 socket——Udp组播(多播)[https://www.jianshu.com/write...

  • flutter udp multicast 组播

    写这篇文章的缘由:在Android原生端,iOS原生端,实现udp 组播相信很多小伙伴都会的,但在flutter ...

  • Unity UDP组播

    UDP的组播:服务器接受信息的端口必须和客户端接受信息的socket 端口一致。问:一个Udp Server加入某...

  • UDP组播 socket

    相关概念: 单播、多播(组播)和广播的区别 http://blog.csdn.net/wangerge/artic...

  • iOS UDP组播

    组播步骤: 建立socket socket和端口绑定 加入一个组播组 通过sendto / recvfrom进行数...

  • 传输控制协议

    面向连接,可靠,字节流一个连接,只有两方通信UDP可以多播和组播 可靠性: tCP可以决定报文段大小,UDP由上层...

网友评论

    本文标题:nodejs实现UDP组播示例

    本文链接:https://www.haomeiwen.com/subject/ilpfbctx.html