HarmonyOS鸿蒙Next中文件经网络传输报错2301000、13900011问题

HarmonyOS鸿蒙Next中文件经网络传输报错2301000、13900011问题 【问题描述】:

我们功能场景是文件传输,使用Socket进行局域网设备间数据传输,有以下概率性问题,某些用户机器会复现:

(1)文件发送过程中TCPSocket.send()函数会报错 code:2301000   msg:No error information

(2)文件发送过程中TCPSocket.send()函数会报错 code:13900011  msg:Out of memory

查看官方文档,官方文档的描写非常模糊,看不明白。

不知道如何处理,是我应用层代码问题还是系统底层问题?

cke_17849.png

cke_18999.png

【问题现象】

问题(1):文件发送过程中TCPSocket.send()函数会报错 code:2301000   msg:No error information

问题(2):文件发送过程中TCPSocket.send()函数会报错 code:13900011  msg:Out of memory

这两个问题都会导致文件传输卡住。这两个问题在不同的用户手机有报, 但是本地没法复现。

【版本信息】:开发工具版本、手机系统版本、Api语言版本

开发工具版本:

DevEco Studio 6.0.0 Release

Build Version: 6.0.0.858, built on September 24, 2025

Runtime version: 21.0.6+8-b631.39 amd64 (JCEF 122.1.9)

VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

Toolkit: sun.awt.windows.WToolkit

Windows 10.0

GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation

Memory: 4060M

Cores: 16

Registry:

ds.ide.experimental.ui=true

idea.plugins.compatible.build=IC-243.24978.46

SDK:

HarmonyOS 6.0.0 Release SDK, inclusion of OpenHarmony SDK Ohos_sdk_public 6.0.0.47 (API Version 20 Release) as is.

cke_52395.png

报问题(1)的用户手机:

VDE-AL00

OpenHarmony-5.0.5.165

HUAWEI Pura X

phone/HUAWEI/HUAWEI/VDE/OpenHarmony-5.0.5.165/VDE-AL00/VDE-AL00/17/5.0.5.165/default

报问题(2)的用户手机:

MRT-AL10

OpenHarmony-5.0.5.316

nova 14 Ultra

phone/HUAWEI/HUAWEI/MRT/OpenHarmony-5.0.5.316/MRT-AL10/MRT-AL10/17/5.0.5.165/default

【复现代码】:

本地无法复现,从用户出现问题的机器捞出日志从而发现的问题。

cke_2258.png

cke_3984.png

【尝试解决方案】:

目前不知道如何解决


更多关于HarmonyOS鸿蒙Next中文件经网络传输报错2301000、13900011问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

开发者您好,您的问题已受理,已有信息不足以定位问题,麻烦提供一下完整的日志。

更多关于HarmonyOS鸿蒙Next中文件经网络传输报错2301000、13900011问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


大佬您好,日志我上传到评论里了,

我本地是没法复现的。 目前只有用户提供的我的APP进程日志,没有系统日志,可以吗,

两个压缩包是华为老师内测提供的,第一个是p70,第二个是pura X,p70跟purax之间出现的问题:彼此互传,都是传输中途停住

升级HarmonyOS后,发现手机的游戏性能也有了显著提升。

错误代码 2301000(No error information)

核心原因:
该错误通常与底层Socket连接异常或数据传输中断有关。可能由以下原因导致:

  1. 网络波动或连接中断:文件传输过程中网络不稳定导致Socket连接断开
  2. 缓冲区溢出:发送数据量超出操作系统缓冲区容量
  3. 并发操作冲突:多线程操作Socket时未正确同步资源

可以尝试分块传输模式,避免一次性发送整个文件

我是在for循环内,遍历读到buffer中,buffer容量2M,每次发送就顶多2M的文件buffer,相当于是把文件切成2M 2M的若干块进行发送。这种算是一次性发送整个文件吗?

另外我用的多个Worker,多线程并行发送,这种会有影响吗?

在HarmonyOS鸿蒙Next中,文件网络传输报错2301000和13900011通常与网络权限配置和传输协议相关。2301000错误涉及网络连接权限未正确声明,需在module.json5文件中确认ohos.permission.INTERNET权限已添加。13900011错误多因传输过程中协议不匹配或数据包异常,需检查网络请求API的兼容性和目标服务器协议支持。请验证网络环境稳定性及文件传输API的调用参数是否符合HarmonyOS规范。

根据你提供的错误代码和场景,2301000和13900011都是HarmonyOS Next中Socket传输的常见错误。

2301000错误通常与网络连接状态异常有关,可能是:

  • 网络连接中断或波动
  • 对端Socket关闭
  • 网络缓冲区满
  • 系统资源紧张

13900011内存不足错误表明:

  • 发送缓冲区溢出
  • 应用内存分配失败
  • 系统内存资源耗尽

建议排查方向:

  1. 在网络发送前检查Socket连接状态,添加重连机制
  2. 实现分块传输,避免一次性发送大文件
  3. 控制发送速率,添加流量控制
  4. 监控应用内存使用,及时释放资源
  5. 在发送失败时增加重试逻辑和错误处理

这些错误通常与应用层的内存管理和网络处理策略相关,建议优化数据传输逻辑和资源管理。

回到顶部