当前位置: 代码网 > it编程>前端脚本>Node.js > Node.js之如何构建UDP服务

Node.js之如何构建UDP服务

2024年11月03日 Node.js 我要评论
udp简介udp又称用户数据包协议,它和tcp一样属于网络传输层。与tcp不同的是,它不是面向连接的,只需要一个套接字就可以与多个udp服务通信。它提供的信息传输服务虽然简单不可靠,并且在网络差的情况

udp简介

udp又称用户数据包协议,它和tcp一样属于网络传输层。

与tcp不同的是,它不是面向连接的,只需要一个套接字就可以与多个udp服务通信。

它提供的信息传输服务虽然简单不可靠,并且在网络差的情况存在丢包问题,但是由于它无需连接,资源消耗低,所以常常应用在一些偶尔丢包也不会产生严重影响的场景下。

例如音频视频,dns服务等。

服务端(server.js)

废话不多讲,直接上实例:

const dgram = require("dgram");
 
const server = dgram.createsocket("udp4");
 
server.on("message", (msg, rinfo) => {
  console.log("rinfo.address =  " + rinfo.address);
  console.log("rinfo.port =  " + rinfo.port);
  console.log(msg.tostring());
});
 
server.on("listening", () => {
  console.log("address:" + server.address().address);
  console.log("port:" + server.address().port);
});
 
server.bind("41234");

我们使用dgram包的createsocket方法来创建一个udp服务,其实我们即可以用它做服务端,也可以用来作客户端。

然后绑定listening事件,当服务启动,就会触发监听。

然后绑定message事件,当有客户端消息发送过来的时候就会触发,发送过来的message是一个buffer

最后调用bind方法,绑定数据传输端口。

客户端(client.js)

废话不多讲,直接上代码:

const dgram = require("dgram");
 
const client = dgram.createsocket("udp4");
 
client.send("hello, nodejs", 41234, "localhost", (err, bytes) => {
  console.error(err);
  console.log(bytes);
  client.close();
  client.on("close", () => {
    console.log("close");
  });
});

客户端调用send方法来发送消息,参数分别代表,要发送的信息,端口,地址,以及回调。

运行server.js 和client.js进行测试。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com