Node.js使用UDP通讯

时间:2023-05-17 13:27:32

Node.js 的 dgram 模块可以方便的创建udp服务,,以下是使用 dgram模块创建的udp服务和客户端的一个简单例子。

一、创建 UDP Server

var dgram = require('dgram');
//创建 udp server
var udp_server = dgram.createSocket('udp4');
udp_server.bind(5678); // 绑定端口 // 监听端口
udp_server.on('listening', function () {
console.log('udp server linstening 5678.');
}) //接收消息
udp_server.on('message', function (msg, rinfo) {
strmsg = msg.toString();
udp_server.send(strmsg, 0, strmsg.length, rinfo.port, rinfo.address); //将接收到的消息返回给客户端
console.log(`udp server received data: ${strmsg} from ${rinfo.address}:${rinfo.port}`)
})
//错误处理
udp_server.on('error', function (err) {
console.log('some error on udp server.')
udp_server.close();
})

二、创建 UDP Client

var dgram = require('dgram');
var udp_client = dgram.createSocket('udp4'); udp_client.on('close',function(){
console.log('udp client closed.')
}) //错误处理
udp_client.on('error', function () {
console.log('some error on udp client.')
}) // 接收消息
udp_client.on('message', function (msg,rinfo) {
console.log(`receive message from ${rinfo.address}:${rinfo.port}:${msg}`);
}) //定时向服务器发送消息
setInterval(function(){
var SendBuff = 'hello 123.';
var SendLen = SendBuff.length;
udp_client.send(SendBuff, 0, SendLen, 5678, '172.30.20.10');
},3000);