针对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地址,有人知道吗?
75浏览 • 1回复 待解决
基于TLSSocket通信能力
177浏览 • 1回复 待解决
判断当前网络环境是否支持IPV4或PV6
481浏览 • 1回复 待解决
服务卡片可以响应上下滑动操作吗?
6596浏览 • 2回复 待解决
操作反应
6311浏览 • 3回复 待解决
针对字节流解码工具
745浏览 • 1回复 待解决
TextInputdefaultFocus不响应
1354浏览 • 1回复 待解决
API6SDK 如何下载?
2399浏览 • 1回复 待解决
获取本地IP地址方法
1855浏览 • 1回复 待解决
选择收货地址Button实现
158浏览 • 1回复 待解决
HDC是否可以针对模拟器上使用?
410浏览 • 1回复 待解决
鸿蒙操作系统数据库操作
9683浏览 • 1回复 待解决
如何实现一个组件不停旋转
1775浏览 • 1回复 待解决