最近需要在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(); });
|
参考链接
- Node js 开发入门 —UDP 编程,小白也能轻松学会,by crmeb.
- UDP 报文最大可以是多大呢,by cft56200_ln.
- UDP传输报文大小详解,by luckyone906.