handleDeviceTap(e) { // 获取用户点击的设备数据情况 const index = e.currentTarget.dataset.index; var appInst = getApp(); // IP appInst.globalData.useDev_IP = this.data.deviceIP[index]; appInst.globalData.useDev_name = this.data.deviceList[index]; console.log('点击的行数:', index); console.log('设备名: ', appInst.globalData.useDev_name); console.log('选取的设备IP: ', appInst.globalData.useDev_IP); // 建立TCP连接,设备做TCP服务器,端口全系列产品 8849 appInst.globalData.cmd_tcp_socket = wx.createTCPSocket(); appInst.globalData.cmd_tcp_socket.onError((err) => { console.error('TCP连接错误:', err); wx.showToast({ title: '连接设备请求失败', icon: 'none' }); }); appInst.globalData.cmd_tcp_socket.connect({ address : appInst.globalData.useDev_IP, port : 8849 }); // 设置对设备执行TCP立即发送的回调函数 appInst.globalData.cmd_tcp_socket.onConnect(() => { // 连接建立后再发送数据 console.log('TCP连接成功'); this.data.dev_tcp_cmd_connected = true; appInst.globalData.cmd_tcp_socket.write(KS_DEV_COMMUNICAT.CMD_DEV_BEGIN); }); // 设置接收到设备响应的回调函数 appInst.globalData.cmd_tcp_socket.onMessage(this.onTcpMsg_recvResponse); 这代码里面,connect会触发onError的回调,打印:{errMsg: "connect fail: invalid address 192.168.12.197:8849, errCode: -4, errno: -4}
鸿蒙系统小程序TCP无法使用TCPSocket.connect(Object options)这个接口,在鸿蒙系统内是无法访问目标IP和端口的。UDP类型另外测试访问可以,但TCP类型的不行
06-05