Qt socket用readall()收包时,大包收不全,求大神解释!(小包可以)
char *buf = new char[1024*1024];
FILE *aa = fopen(picpath.c_str(),"rb");
int len=fread(buf,sizeof(char),1024*1024,aa);
QByteArray by(buf,len);
QJsonObject json_1;
json_1.insert("method", 15);
json_1.insert("seq", 1000000015);
json_1.insert("handle", handdles);
json_1.insert("storeid",QString::fromStdString(selectlibid));
json_1.insert("confide", ui->lineEdit_19->text().toInt());
json_1.insert("number", ui->lineEdit_20->text().toInt());
json_1.insert("picdata",by.toBase64().toStdString().c_str());
QJsonDocument document;
document.setObject(json_1);
QByteArray byte_array = document.toJson(QJsonDocument::Compact);
QString json_str(byte_array);
client->WriteData(json_str.toUtf8().constData(),strlen(json_str.toUtf8().constData()));
QByteArray byte_array_1;
client->setReadBufferSize(1024*1024);
byte_array_1 = client->readAll();------------------如果收到的数据小于1024左右就能收全
QString json_strrrr(byte_array_1);
qDebug()<<QString("reveive length:%1").arg(strlen(json_strrrr.toUtf8().constData()));