微信小程序使用UDP实现局域网通信

使用场景:在新的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: "哈哈"}

七、到这里就结束了。谢谢阅读

八、后续,两台手机一个安卓一个苹果扫码真机调试有时可以收到消息有时收不到。无语凝噎

九、后续,原来是没写onListening事件,无语啊,不过还好总算弄出来了。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xl__qd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值