当前位置:   article > 正文

微信小程序 --建立UDP局域网连接_小程序 udp

小程序 udp

一、什么是UDP?

        UDP 是User Datagram Protocol的简称, 即用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议。

        UDP协议TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层

二、在小程序中封装UDP连接的方法

        在小程序的utils包中建立udp.js文件,将下例代码导入后即可在小程序全局调用相对应的方法

  1. var app = getApp()
  2. var udp = null
  3. var UDPSocket = {
  4. //连接目标
  5. linkUDP(address, port) {
  6. udp.close()
  7. udp = wx.createUDPSocket()
  8. udp.bind(1110)
  9. udp.connect({
  10. address: address,
  11. port: port,
  12. })
  13. console.log('连接成功')
  14. },
  15. //发送信息
  16. sendUDP(address, port, message) {
  17. console.log('发送udp')
  18. if (udp == null) {
  19. udp = wx.createUDPSocket()
  20. udp.bind() //udp绑定本机
  21. udp.send({
  22. address: address,
  23. port: port,
  24. message: message
  25. })
  26. } else {
  27. udp.send({
  28. address: address,
  29. port: port,
  30. message: message
  31. })
  32. }
  33. app.globalData.sendUDPCount++
  34. },
  35. //监听接收到的数据
  36. onUdpMessage(res) {
  37. udp.onMessage((res) => {
  38. //处理接收到的数据
  39. if (res.remoteInfo.size > 0) {
  40. //将监听到的消息转换为字符串,必须要转换才能正常显示,因为监听到的消息是二进制的数组
  41. let unit8Arr = new Uint8Array(res.message)
  42. let encodedString = String.fromCharCode.apply(null, unit8Arr)
  43. let decodedString = decodeURIComponent(escape((encodedString)))//没有这一步会出现中文乱码
  44. console.log('UDP Received message', decodedString)
  45. var obj = decodedString;
  46. app.globalData.currMsg = JSON.parse(obj.trim());
  47. console.log(typeof app.globalData.currMsg)
  48. } else {
  49. failure('接收到的信息为空!')
  50. }
  51. })
  52. },
  53. }
  54. //导出UDP连接的方法
  55. module.exports = {
  56. UDPSocket: UDPSocket
  57. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/188789
推荐阅读
相关标签
  

闽ICP备14008679号