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 调试功能为什么如此慢有什么解决方法吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)