针对IPv6地址的TLSSocket bind操作无响应

socket.TLSSocket类,在bind IPv6类型的地址时,没有成功或者失败回调。

关键代码:

this.socket = socket.constructTLSSocketInstance(); 
connection.getDefaultNet().then((netHandle) => { 
  connection.getConnectionProperties(netHandle, (error, info) => { 
    if (!error) { 
      let ip = info.linkAddresses[0].address.address; 
      if (TsUtils.isIPv6(this.host)) { 
        const ipv6Addresses = info.linkAddresses.filter((lAddr) => lAddr.address.family === 2); 
        if (ipv6Addresses.length <= 0) { 
          this.dealFailResult({ 
            code: -1, 
            message: 'IPv6 not support', 
            name: 'IPv6 not support' 
          }) 
          return; 
        } 
        ip = `[${ipv6Addresses[0].address.address}]`; 
      } 
      logI.d(`socket bind ${ip}`); 
      this.socket.bind({ address: ip, family: TsUtils.isIPv6(ip) ? 2 : 1 }, err => { 
        // 这里不会执行,bind没有响应 
        if (err) { 
          this.dealFailResult(err); 
          return; 
        } 
        logI.d(`bind ${ip} success`) 
        callback(); 
      }); 
    } 
    else { 
      this.dealFailResult(error); 
    } 
  }); 
})
HarmonyOS
2024-08-22 20:51:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

bind可以绑定ipv6的地址,参考如下demo:

bind_test() { 
  let tlsClient = socket.constructTLSSocketInstance(); 
  connection.getDefaultNet().then((netHandle) => { 
    connection.getConnectionProperties(netHandle, (error, info) => { 
      if (!error) { 
        console.warn('info = ', JSON.stringify(info)); 
        let ip = ''; 
        for (let index = 0; index < info.linkAddresses.length; index++) { 
          if (info.linkAddresses[index].address.family === 2) { 
            ip = info.linkAddresses[index].address.address; 
            console.warn('ip = ', ip); 
            tlsClient.bind({ address: ip, family: 2 }, err => { 
              if (err) { 
                console.log('bind fail, error = ', JSON.stringify(err)); 
                return; 
              } 
              console.log('bind success'); 
            }); 
          } 
        } 
      } else { 
        console.warn('err = ', JSON.stringify(error)); 
      } 
    }); 
  }) 
}
分享
微博
QQ
微信
回复
2024-08-23 17:00:18
相关问题
如何获取IPV6地址,有人知道吗?
324浏览 • 1回复 待解决
HarmonyOS 获取设备IPv4地址
36浏览 • 1回复 待解决
判断当前网络环境是否支持IPV4或PV6
783浏览 • 1回复 待解决
基于TLSSocket通信能力
489浏览 • 1回复 待解决
服务卡片可以响应上下滑动操作吗?
6931浏览 • 2回复 待解决
HarmonyOS UDP socket bind失败
33浏览 • 1回复 待解决
操作反应
6642浏览 • 3回复 待解决