赞
踩
UDP 是User Datagram Protocol的简称, 即用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议。
UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层
在小程序的utils包中建立udp.js文件,将下例代码导入后即可在小程序全局调用相对应的方法
- var app = getApp()
- var udp = null
-
- var UDPSocket = {
- //连接目标
- linkUDP(address, port) {
- udp.close()
- udp = wx.createUDPSocket()
- udp.bind(1110)
- udp.connect({
- address: address,
- port: port,
- })
- console.log('连接成功')
- },
- //发送信息
- sendUDP(address, port, message) {
- console.log('发送udp')
- if (udp == null) {
- udp = wx.createUDPSocket()
- udp.bind() //udp绑定本机
- udp.send({
- address: address,
- port: port,
- message: message
- })
- } else {
- udp.send({
- address: address,
- port: port,
- message: message
- })
- }
- app.globalData.sendUDPCount++
- },
- //监听接收到的数据
- onUdpMessage(res) {
- udp.onMessage((res) => {
- //处理接收到的数据
- if (res.remoteInfo.size > 0) {
- //将监听到的消息转换为字符串,必须要转换才能正常显示,因为监听到的消息是二进制的数组
- let unit8Arr = new Uint8Array(res.message)
- let encodedString = String.fromCharCode.apply(null, unit8Arr)
- let decodedString = decodeURIComponent(escape((encodedString)))//没有这一步会出现中文乱码
- console.log('UDP Received message', decodedString)
- var obj = decodedString;
- app.globalData.currMsg = JSON.parse(obj.trim());
- console.log(typeof app.globalData.currMsg)
- } else {
- failure('接收到的信息为空!')
- }
-
- })
- },
- }
- //导出UDP连接的方法
- module.exports = {
- UDPSocket: UDPSocket
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。