收藏
回答

udpSocket.onMessage预览时只能发送,不能接收?

使用开发者工具调试时,udpSocket.onMessage可以发送也能接收UDP广播包和指定ip的UDP包。但预览时可以发送成功,接收不到udp包。为什么?

var udp = wx.createUDPSocket();


if(udp == null){

console.log("udp建立不成功")

return ;

}

var that = this;

const loactionPort = udp.bind(28266);

var testData = loactionPort;

that.setData({ testData: testData});


udp.onListening(function(res) {

});

udp.onMessage(function(res) {

console.log(res);

var remoteInfo = new Object;

var ipAddr = res.remoteInfo.address;

var port = res.remoteInfo.port;

var str = "";


for (var i = 0; i < res.message.data.length; i++) {

str = str + String.fromCharCode(res.message.data[i]);

}

console.log(str);


var testData = str;

testData = "str";

that.setData({testData:testData});

var msg = JSON.parse(str);

remoteInfo.ipAddr = ipAddr;

remoteInfo.port = port;

remoteInfo.msg = msg;


that.setData({

remoteInfo: remoteInfo

});

console.log(that.data.remoteInfo);

});



回答关注问题邀请回答
收藏

5 个回答

  • 逐枫
    逐枫
    2019-11-27
    • https://developers.weixin.qq.com/s/3OHYzbmk7Jd7https://developers.weixin.qq.com/s/ezHylbma7jdK

      程序启动后,建立udp,端口8166.点击“文字”发送广播包。用网络调试助手(或其他方式),无论发送JSON广播包或特定ip包,在微信开发工具的模拟器上能接收到数据包,但预览时只能发送,接收不到。



    2019-11-27
    有用 2
    回复 15
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-12-04
      你好,请问现在问题解决了么,回复信息需要在评论下回复才可以收到提醒
      2019-12-04
      回复
    • Sea_Wolf
      Sea_Wolf
      2020-02-10
      你好,我也遇到这样的情况,问题解决了吗?
      2020-02-10
      回复
    • 凉薄青年
      凉薄青年
      2020-02-19
      你们解决了吗
      2020-02-19
      回复
    • 我只会写代码
      我只会写代码
      2020-03-04
      解决了吗?
      2020-03-04
      回复
    • 物联网.覃信勇
      物联网.覃信勇
      2020-03-05
      有可能是 udp.bind这里不能设端口,因为小程序不是服务端,不能固定端口,所以会收不到回复.
      2020-03-05
      回复
    查看更多(10)
  • owen
    owen
    2020-06-11

    这是还没有解决的状态吧。。真机onListening也是同样收不到回调通知。

    2020-06-11
    有用
    回复
  • 日落就忘
    日落就忘
    2020-04-28
    socket.onMessage(function(res){
        console.log("udp socket onMessage: ");
        console.log(res);
    
        if(_self.onDecodeCallback != null){
            if(res.message != null
            && res.message.data != null
            && res.message.type == "Buffer"){
                //模拟器上走这,res.message是一个object
                let buf = new Uint8Array(res.message.data);
                _self.cmdDecoder.decode(buf.buffer, res.remoteInfo);
            }else{
                //真机上走这,真机res.message直接就是一个ArrayBuffer
                let dataView = new DataView(res.message);
                for(let i=0; i<res.message.byteLength; ++i){
                    console.log(i + ": " + dataView.getUint8(i));
                }
    
                _self.cmdDecoder.decode(res.message, res.remoteInfo);
            }
        }else{
            console.log("_self.onDecodeCallback is null");
        }
    });
    


    2020-04-28
    有用
    回复
  • 紫气东来
    紫气东来
    2020-03-05

    同样的问题,楼主怎么解决

    2020-03-05
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-11-26

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2019-11-26
    有用
    回复
登录 后发表内容
问题标签