nodejs中使用UDP传递信息

发布于:2025-07-12 ⋅ 阅读:(13) ⋅ 点赞:(0)

 什么是UDP?

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的网络传输协议,位于 OSI 模型的传输层(第四层),与 TCP(传输控制协议)同为互联网的核心协议之一。它具有以下特点:

无连接

  • 发送数据前无需建立连接(如 TCP 的三次握手),直接发送数据包。
  • 优点:低延迟,适用于实时应用(如视频流、语音通话)。
  • 缺点:不保证数据到达或顺序

不可靠传输

  • 不保证数据包:
    • 顺序性(可能乱序到达)。
    • 完整性(可能丢失)。
    • 到达(无确认机制)

怎么在nodejs中使用UDP?

直接上代码:

服务端

// 创建udp *************************************************
const dgram = require("dgram");
const server = dgram.createSocket("udp4");
// 监听 
server.on("message", (msg, rinfo) => {
     console.log(`接收到来自 ${rinfo.address}:${rinfo.port} 的消息: ${msg.toString()}`);
     setInterval(()=>{
        let t = Date.now()+""
        // t 必须是Buffer或字符串
        server.send(t, rinfo.port, rinfo.address, (err, bytes) => {
            console.log("发送:"+t)
        });
    },1000)
});
// 监听建立连接
server.on("listening", () => {
    console.log("server:" + server.address().port);
 
});
// 注册UDP服务
server.bind("5000");



客户端

// 创建udp *************************************************
const dgram = require("dgram");
const client = dgram.createSocket("udp4");
 
// 监听建立连接
client.on("listening", () => {
    console.log("udp:" + client.address().port);
  
});
// 注册UDP服务
client.bind(5001);

// 向服务器发送消息
setTimeout(()=>{
    client.send("你好,服务器!","5000","192.168.1.64",(err,bytes)=>{
        if(err){
            console.log("消息发送失败!")
            client.close();
            return;
        }
        client.on('message', (msg, rinfo) => {
            console.log(`接收到来自服务器 ${rinfo.address}:${rinfo.port} 的响应: ${msg.toString()}`);
           
        });
    })
},5000)

用node启动后


网站公告

今日签到

点亮在社区的每一天
去签到