qtcpsocketreadall卡死

qtcpsocketreadall卡死,第1张

QTcpSocketReadAll卡死是指QTcpSocket读取数据的过程中出现卡死的情况,这是由于QTcpSocket读取数据的过程中出现了网络故障或者网络超时等原因导致的。为了解决这个问题,可以采用以下几种方法:1检查网络状况,确保网络通畅;2检查QTcpSocket的超时时间,确保超时时间设置的合理;3检查QTcpSocket的读取缓冲区,确保缓冲区大小设置的合理;4检查QTcpSocket的读取状态,确保读取状态正确;5检查QTcpSocket的读取数据,确保读取数据的格式正确。通过以上几种方法,可以有效地解决QTcpSocketReadAll卡死的问题,从而让QTcpSocket读取数据更加顺畅。

revKey[i] = fgetc(fp) ^ recvBuffer[i];//将接收到的加密文件与mactxt文件中的密钥进行异或解密

这里 你没有判断revKey的长度是否小于i的值,可能造成了内存溢出引起了

添加一句 if(i >= revKeylength()) break; 试试看有没有错误

1 “用Qt写的程序编译比MFC慢”的说法是错误的

绝对错误,单位代码行数编译Qt远比MFC快得多,因为Qt库的头文件设计非常好,尽量都使用了前置声明,避免了头文件嵌套,几乎所有类都使用了公有类和私有类的设计,把没必要公开的声明放到私有头文件里,避免了编译时引入过多代码。而MFC没有这样的设计。

至于大家感觉MFC快主要原因是MFC工程默认打开了编译预处理头文件(PCH),但是这是VC编译器的特性,所有C++程序都可以用,不是MFC特有,Qt也可以使用 PCH

方法很简单,在你的 pro 文件中加入一行

PRECOMPILED_HEADER = stableh

指定 Stableh这个头文件作为编译预处理文件,MFC里这个文件一般叫stdafxh

然后在 stableh里 包含你所用到的所有 Qt 头文件,如果你用了很多qt的类可以直接包含所有

比如 :

#include <QtCore>

#include <QtGui>

这两个文件里又包含了几乎所有Qt常用类

不用担心,即使包含了所有头文件也没关系,有了PCH再多头文件也没影响。

如果你还想编译再快点,可以在 pro里加入下面一行

QMAKE_CXXFLAGS += /MP

指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp

而且QT这种引入PCH的方法比MFC的好,由于MFC的PCH选项是每个工程逐个指定的,很容易被某些人搞坏,我曾经无数次修复PCH问题,但是Qt的选项是写在pro里的,写一次就永远不会错。

MFC一旦弄坏了PCH,编译也慢得令人发指。

给个参考时间吧,YY最新版本大约 100多万行C++代码,rebuild debug和releae总共需要20多分钟,机器是i5 四核SSD硬盘。其实对于大项目硬盘才是瓶颈,如果换机械硬盘要慢差不多70%,有个同事用10G内存做了个内存盘编译,还能快30%。

无响应情况的发生与QT版本(本noob使用的Qt Creator 480 (Enterprise))无关,在QT使用时突然发作。

表现为内存占用不断上升,直至到达内存上限后QT闪退123

结合广大博友的相似案例,以及自己成功的解决方案,初步判断为QT无响应和显卡/显示驱动/其他软件的进程干涉有关。

解决方案

显卡问题

运行QtCreator的时候不支持某些显卡或者不支持高性能图形处理器

方法1(笔记本适用,台式PC可能不行)

你使用的独立显卡有可能不兼容QT,首选图形处理器选择为自动选择或者集成图形

引用来自>

以上就是关于qtcpsocketreadall卡死全部的内容,包括:qtcpsocketreadall卡死、qt接收数据问题,为什么运行时会卡住,关闭时显示结束程序,代码如下,很急,求大神解答、Windows 版的 Qt Creator 调试功能为什么如此慢有什么解决方法吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9706189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存