HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}

HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {“code”:2301101,“message”:“Network is unreachable”}

同样的模拟器使用java 的net.socket connect成功

private bindAndconnect() {
  /**
   * family 网络协议类型,可选类型:IPv4 、IPv6 、 默认为IPv4。
   *  IPv4 = 1; IPv6 = 2, default is IPv4
   */

  let address = '****'
  let port = 5224
  tcp.bind({
    address: address,
    port: port, // 绑定端口,如1234
    family: 1
  }, err => {
    if (err) {
      console.log('bind fail ' + JSON.stringify(err));
      return;
    }
    console.log('bind success');
    tcp.connect({ address: {
      address: address,
      port: port,
      family: 1 }, timeout: 10000 }, err => {
      if (err) {
        console.log('connect fail ' + JSON.stringify(err));
        return;
      }
      console.log('connect success');
    })
  }
  )
}

更多关于HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}的实战教程也可以访问 https://www.itying.com/category-93-b0.html

10 回复

这个问题解决了吗?我也遇到了

更多关于HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


解决了,鸿蒙的socket 只能使用IP来连接。先使用connect自己dns解析域名, 获取ip和famify然后再用connect。bind不用调用,

有的版本必需bind,则使用本地的loachost,但是famify要和connect的保持一致。

这也太蠢了吧。万一以后服务器换ip了怎么办,

错误码描述的信息为:网络连接错误

这可能是由于网络故障、错误的网络设置或网络配置问题等原因引起的。

反复测试后,发现把family改成2使用IPV6成功建立连接。

现在IPV4失败原因还不知道,请求地址支持IPV4、IPV6的,测试设备是DevEco Studio 3.1.1 Release的虚拟机,Wi-Fi 连接。

IPV4的解决了吗

绑定的端口号和连接的端口号使用同一个端口号,怎么能连接成功呢?bind的address和port指的一般是本机ip和本地端口,一般address可以设置为“localhost”,port不用设置;connect中的address对象中的address和port是服务端的ip地址和端口号。

开始的时候,看了socket api中的内容也弄了很长时间,文档中说的不是很清楚,后来看了相关的socket资料后,才慢慢测试出来。

基本信息
姓名:张三
职位:软件工程师
技能:Python, Java, C++

绑定的邮箱:zhangsan@example.com
联系电话:1234567890

在HarmonyOS鸿蒙Next中,TcpSocket的bind操作成功但connect失败,并返回错误码2301101和消息"Network is unreachable",通常表示网络不可达。这种情况可能由以下原因引起:

  1. 网络配置问题:设备的网络配置可能存在问题,例如IP地址、子网掩码、网关等配置不正确,导致无法连接到目标服务器。

  2. 防火墙或安全策略:设备或网络中的防火墙可能阻止了TCP连接请求,或者安全策略限制了网络访问。

  3. 目标服务器不可达:目标服务器的IP地址或端口可能无法访问,可能是服务器未启动、端口被占用或网络路由问题。

  4. 网络接口未启用:设备的网络接口可能未正确启用或处于关闭状态,导致无法建立网络连接。

  5. 网络权限问题:应用可能未获得必要的网络权限,导致无法访问网络。

需要检查设备的网络配置、防火墙设置、目标服务器的可达性以及应用的网络权限,以确定具体原因并解决问题。

回到顶部