HarmonyOS鸿蒙Next中使用socket创建UDP连接,bind指定address时报错 2301099 'Address not available'

HarmonyOS鸿蒙Next中使用socket创建UDP连接,bind指定address时报错 2301099 ‘Address not available’ 设备连接物联网设备热点后,使用socket创建UDP连接,bind指定address时报错 2301099 ‘Address not available’.

出错代码:

let udp: socket.UDPSocket = socket.constructUDPSocketInstance();
try {
    await udp.bind({ address: '192.168.xx.xx', port: xxxx }) // 运行代码为真实IP及端口
} catch (e) {
    console.error('bind error:', e);
}

error log – e.code: 2301099, e.message: ‘Address not available’

操作步骤:

  1. 手机连接物联网设备热点
  2. 代码内创建UDPSocket,bind指定ip及端口

更多关于HarmonyOS鸿蒙Next中使用socket创建UDP连接,bind指定address时报错 2301099 'Address not available'的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

socket的bind函数入参地址是本机IP: bind(address: NetAddress, callback: AsyncCallback): void 绑定IP地址和端口,端口可以指定或由系统随机分配。使用callback方式作为异步方法。

本机获取IP参考:

let localAddress = resolveIP(wifi.getIpInfo().ipAddress);
export function resolveIP(ip: number): string {
  if (ip < 0 || ip > 0xFFFFFFFF) {
    throw ('The number is not normal!');
  }
  return (ip >>> 24) + '.' + (ip >> 16 & 0xFF) + '.' + (ip >> 8 & 0xFF) + '.' + (ip & 0xFF);
}

export function checkIp(ip: string): boolean {
  let ipRegex = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/;
  return ipRegex.test(ip);
}

更多关于HarmonyOS鸿蒙Next中使用socket创建UDP连接,bind指定address时报错 2301099 'Address not available'的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用socket创建UDP连接时,如果调用bind指定address时报错2301099 ‘Address not available’,通常是因为指定的IP地址无法绑定到当前网络接口。可能的原因包括:

  1. IP地址无效:指定的IP地址不在当前设备的网络接口范围内,或者该IP地址已被其他应用程序占用。
  2. 网络接口未启用:指定的IP地址对应的网络接口未启用或未连接到网络。
  3. 权限问题:应用程序可能没有足够的权限绑定到指定的IP地址或端口。

检查网络配置,确保指定的IP地址有效且网络接口已启用。如果问题依旧,尝试绑定到0.0.0.0::(IPv6)以绑定到所有可用接口。

在HarmonyOS鸿蒙Next中使用Socket创建UDP连接时,如果bind指定地址时报错2301099 ‘Address not available’,通常是因为指定的IP地址无效或不可用。请检查以下几点:

  1. 确保指定的IP地址是设备上的有效网络接口地址,可以通过ifconfigip addr命令查看。

  2. 确保IP地址与设备的网络配置匹配,避免使用不存在的地址。

  3. 如果是绑定到0.0.0.0(所有接口),确保设备至少有一个网络接口处于活动状态。

  4. 检查是否有权限绑定到指定端口,避免端口被占用或权限不足。

回到顶部