上篇介绍了TCP通信,本篇将介绍UDP通信协议:一种无连接,不可靠的传输方式,值得注意的是,所谓的不可靠,其实可以通过客户端采取特殊的策略来决定。
先安装dgram模块。
服务端项代码如下:
/**
* 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);
console.log("服务器接收到来自"+rinfo.address+":"+rinfo.port+" 的消息:"+msg.toString());
});
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客户端
*/
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已关闭");
});
client.send("我是UDP客户端!",8234,"127.0.0.1",(err)=>{
if(err) client.close();
});
运行结果如下:
【服务端】
【客户端】