使用场景:在新的ubuntu服务器中部署一些服务和其他工作时,需要经常从主电脑复制文本到Ubuntu,但即没微信又没vpn,只能手动一个一个字母敲。。于是就想自己写一个局域网通信的小程序练练手,后面再看看如何实现网页版的局域网通信
一、创建UDP实列
const udp = wx.createUDPSocket()
二、绑定自己的服务端口(必须数值类型,每一个UDP实列都需要一个端口绑定,不然无法通信)
udp.bind(1234)
三、监听开始监听数据包消息的事件(告诉你已经准备就绪,是启动监听,但不是监听消息,一定要启动监听不然后面监听不到消息)
udp.onListening((e) => {
console.log(e);
console.log("开始监听消息");
})
四、开始监听消息(这才是监听消息上报)
udp.onMessage((e) => {
console.log(e);
})
五、发送消息(255.255.255.255是广播消息,可以改为指定的ip地址,端口就填另一个udp服务的端口,消息格式必须是字符串或数值类型的,不然发送不出去,也不报错!)
//这就是编码了
const data = JSON.stringify({
ip: "1111",
msg: "哈哈"
})
udp.send({
address: '255.255.255.255',
message: data,
port: 4321
})
六、解析上报的arrayBuffer格式消息
下面的就是解码了,解码需要用到一个utf8ArrayToStr.js文件,我会在文章最下面粘贴出来。
const Utf8ArrayToStr = require('../../utils/utf8ArrayToStr');
const msg = Utf8ArrayToStr(new Uint8Array(res.message))
console.log(msg);
// 结果:{ip: "1111",msg: "哈哈"}