QTcpSocket接收通过网络单次发送的大批量数据导致异常

news/2025/3/18 14:04:01/文章来源:https://www.cnblogs.com/xian-yongchao/p/18778821

场景再现

  1.在调试同事程序的时候,程序需要从矢量网络分析仪中读取S参数数据。当S参数数据过多(10M左右大小)的时候,程序产生异常。

  2.通过debug对比发现,程序中在接收到前面部分数据后,后续的数据被截断了。我用其它网络工具查询数据则不会产生此现象。

实现方案

  1.通过readyRead信号触发数据读取

  2.在槽函数中用read函数每次读取1024个字节(read函数一次读取的字节个数有限制,会根据系统架构不同有所不同。windows默认在8k)

  3.当一次发送的数据量过大,导致程序触发10多次的readyRead信号后就不触发了(保护系统,万一单次发送1G的数据,那不是短时间会触发10万次的readyRead信号!?)。从而导致后续的数据被截断了,进而引发程序异常。

更改方案

  1.通过read(MaxLen)扩大单次读取的限制,例如10M(1024*1024*10)

  2.在槽函数中用readAll读取数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900934.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 slot 具名插槽

一、情景 一个组件用多个子组件,子组件样式相同 二、作用 父组件传递数据和格式给子组件 三、语法 1、子组件(挖坑)<slot name="title">默认标题</slot> <slot name="content">默认内容</slot>2、父组件(填坑) 用语法糖 #<Cat…

INFINI Labs 产品更新 - Coco AI – 增强 AI 搜索、API 管理与性能优化等

INFINI Labs 产品更新发布!此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级,重点提升 AI 搜索能力、易用性及企业级优化。Coco AI v0.2 作为 开源、跨平台的 AI 搜索工具,新增 APP 自动更新提示、API Token 管理、文档处理优化 等功能。 INFINI Easysearch v1.11.1 集…

无线数据网关 自动化测控的LoRa-4G混合网络 串口升级、信号扩展 高效物联传输网络

DLS11无线数据网关 自动化测控的LoRa-4G混合网络 串口升级、信号扩展 高效物联传输网络DLS11是一款专为VSxxx系列采发仪设计的内置电池低功耗数据转发器,支持LoRA和LTE(4G)无线通信。该设备通过“实时在线”的LoRA收发器,能够收集并存储来自其他LoRA设备的数据。随后,DLS1…

魔搭通义灵码:0代码基础、0门槛在线编程做应用

在具体开发过程中,好的开发环境和开发工具十分重要,为了更好的体验,更好地利用AI进行代码生成,我们推荐使用魔搭社区 Notebook云端开发 IDE 工具,搭配内置的 Vscode 编程环境以及通义灵码工具,一站式进行AI应用搭建。不需要复杂的环境配置,也不需要代码基础,只要熟练运…

ASE69N30-ASEMI智能工业专用ASE69N30

ASE69N30-ASEMI智能工业专用ASE69N30编辑:ll ASE69N30-ASEMI智能工业专用ASE69N30 型号:ASE69N30 品牌:ASEMI 封装:TO-247 批号:最新 最大漏源电流:69A 漏源击穿电压:300V RDS(ON)Max:49mΩ 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道MO…

PLM项目管理软件如何改善设计变更管理?

设计变更在产品的生命周期中是不可避免的,它可能源于客户需求的变化、技术的更新、原材料的供应问题等多种因素。有效的设计变更管理对于确保产品按时交付、控制成本以及维持产品质量至关重要。PLM(产品生命周期管理)项目管理软件作为一种强大的工具,能够显著改善设计变更管…

4.3D曲线

1.多项式参数曲线 1.1参数曲线 曲线可以用一个带有参数$t$的函数来描述,函数形式为$p(t)$,输入的参数为$t$。 例子1:单位圆的经典参数描述 其中$0\leq t\leq1$ $x(t) = \cos(2\pi t)$ $y(t) = \sin(2\pi t)$ 例子2:中心点在原点的椭圆参数方程 其中$0\leq t \leq 1$,a是椭圆…

PLM项目管理软件如何优化产品生命周期管理(PLM)?

产品生命周期管理(PLM)对于企业的发展至关重要,它涵盖了产品从概念构思到退役的整个过程。而PLM项目管理软件作为助力企业实现高效PLM的关键工具,正发挥着越来越重要的作用。通过对产品数据的有效管理、流程的优化以及团队协作的提升等多方面,PLM项目管理软件能够显著优化…

day:24 python模块(6)——sys模块

print(sys.version) #获取Python解释程序的版本信息,python程序运行版本 print(sys.maxsize) #能够表示的最大int#9223372036854775807 print(sys.path)#检索python下包 print(sys.platform) #sys.platform: 获取当前系统平台#运行平台win32 print(sys.copyright) #版权信息 p…

VLLM 推理 not find -lcuda 解决

VLLM /usr/bin/ld: 找不到 -lcuda: 没有那个文件或目录 问题解决环境:pytorch2.5.1 vllm0.73.0 cuda==12.5今天在尝试vllm 进行多卡推理时,出现以下问题TypeError: BackendCompilerFailed.init() missing 1 required positional argument: inner_exception /usr/bin/ld: 找不…

需要的效果它都有,让AI对话开发效率翻倍!这款Ant Design扩展组件库绝了

ant-design-x-vue 是基于 Ant Design Vue 的扩展组件库,专注于增强聊天和AI交互场景的体验。项目提供开箱即用的对话式UI组件,支持消息气泡、智能建议、思维链展示等特色功能,特别适合快速搭建智能客服、AI助手类应用。嗨,大家好,我是小华同学,关注我们获得“最新、最全、…

mysql8修改caching_sha2_password为mysql_native_password

/etc/my.cnf文件 [mysqld]下面追加 mysql_native_password=ON然后重启mysql。 执行sql语句,修改身份验证插件 ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY your_password; ALTER USER root@% IDENTIFIED WITH mysql_native_password BY your_passwor…