Nodejs之dgram

本文详细介绍了Node.js中的dgram模块,用于实现UDP数据包的socket操作。主要内容包括添加和删除组播成员、获取地址信息、绑定端口、关闭socket、连接远程地址、发送数据报以及设置生存时间等关键方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dgram

dgram数据报提供了UDP数据包socket的实现。

const dgram = require('dgram');
创建dgram.Sockrt的新实例,不使用new
const server = dgram.createSocket('udp4');

error发生错误时触发
server.on('error', (err) => {
  console.log(`服务器异常:\n${err.stack}`);
  关闭一个socket之后触发,一旦触发,则这个socket上将不会触发新的message事件。
  server.close();
});

当有新的数据包被socket接收时,message事件会被触发
server.on('message', (msg, rinfo) => {
  console.log(`服务器接收到来自 ${rinfo.address}:${rinfo.port} 的 ${msg}`);
});

开始监听数据包信息时触发
server.on('listening', () => {
  const address = server.address();
  console.log(`服务器监听 ${address.address}:${address.port}`);
});

server.bind(41234);
// 服务器监听 0.0.0.0:41234

方法

  • addMembership()
    添加组播成员;
  • dropMembership()
    删除组播成员;
  • address()
    返回socket地址信息对象,UDP socket对象包含address、family和port属性;
  • bind()
    绑定端口和主机。
    若端口未指定,操作系统绑定一个随机的端口;
    若address未指定,操作系统会尝试在所有地址上监听;
  • close()
    关闭该socket并停止监听其上的数据。
  • connect()
    关联一个远程地址和端口。
  • disconnect()
    与远程地址断掉的同步函数。
  • ref()
    将socket重新添加到这个引用列表中,并恢复默认行为。
  • unref()
    将socket从node进程的引用列表中删除。
    socket对象不再进行通信,程序会退出。
    即使socket对象还在坚挺数据,也允许退出。
  • send()
    在socket上广播数据报。
    const dgram = require('dgram');
    const message = Buffer.from('一些字节');
    const client = dgram.createSocket('udp4');
    client.send(message, 41234, 'localhost', (err) => {
      client.close();
    });
    
  • setTTL()
    设置数据报生存时间
  • setMulticastTTL()
    设置组播数据报生存时间
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值