Nodejs使用UDP通信传输JSON数据的方法

最近需要在Nodejs平台上使用UDP协议接收JSON数据,于是研究一下。

UDP服务器端代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
* UDP服务端
*/
//载入udp模块
const dgram = require("dgram");
//创建服务器
const server = dgram.createSocket("udp4");

server.on("message",(msg,rinfo)=>{
//将接收到的消息返回客户端
var strmsg = "你好,UDP客户端,消息已经收到!";
server.send(strmsg,rinfo.port,rinfo.address);
let jsonData=JSON.parse(msg)
console.log("服务器接收到来自"+rinfo.address+":"+rinfo.port+" 的消息:"+jsonData.hello);
});

server.on("listening",()=>{
let adress = server.address();
console.log("服务器监听:",adress.adress+":"+adress.port);
});

server.on("error",(err)=>{
console.err("服务器异常错误:"+err.message);
});

server.bind(8234,"127.0.0.1");

UDP客户端代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
* UDP客户端
*/
const dgram = require("dgram");

const client = dgram.createSocket("udp4");

client.on("message",(msg,rinfo)=>{
console.log("接收来自:"+rinfo.address+":"+rinfo.port+"的消息:"+msg.toString());
});

client.on("error",(err)=>{
console.error("客户端错误:"+err.message);
});

client.on("close",()=>{
console.log("socket已关闭");
});

let jsonData={
hello: "我是UDP客户端!"
}

client.send(JSON.stringify(jsonData),8234,"127.0.0.1",(err)=>{
if(err) client.close();
});

参考链接

  1. Node js 开发入门 —UDP 编程,小白也能轻松学会,by crmeb.
  2. UDP 报文最大可以是多大呢,by cft56200_ln.
  3. UDP传输报文大小详解,by luckyone906.