QByteArray TCP::TcpSocket::Request(const QByteArray &byte)
{
if (this->state() != 3) // 检测链接状态
{
qDebug()<<this->errorString();
return "";
}
Send(byte);//发送信息
if(!this->waitForReadyRead())// 注意此函数在windows下可能失败
{
qDebug()<<this->errorString();
return "";
}
char dataSizeBuf[8+1];//读取自定义报文长度 前8位
int ret = ntcpRead(this, dataSizeBuf, 8);
if (ret != 0)
{
qDebug() << "Read Data Pack Size Error.";
return "";
}
dataSizeBuf[8] = '\0';
int dataSize = 0;
dataSize = atoi(dataSizeBuf);
char *dataBuffer = new char[dataSize+1];//根据读取的报文总长度 分配空间 在读取
ret = ntcpRead(this, dataBuffer, dataSize);
if (ret != 0)
{
delete []dataBuffer;
qDebug() << "Read Data Buff Error.";
return "";
}
dataBuffer[dataSize]
解决 QTcpSocket 读取超过 8192个字节 不能正常处理的问题
最新推荐文章于 2023-09-09 11:18:47 发布
本文介绍了在使用QTcpSocket进行网络通信时遇到的读取数据超过8192字节无法正常处理的问题,并详细讨论了问题的原因及提供了解决该问题的具体方法和步骤。
摘要由CSDN通过智能技术生成