QTcpSocket分块发送数据失败

dataHeader dhead;
                            QByteArray headBuffer,sendBuffer,dataBuffer;

                            dhead.cmd = ret.cmd;
                            dhead.datalength = ret.datalength;


                            headBuffer.resize(sizeof(dataHeader));
                            sendBuffer.resize(sizeof(ShowPersonResult));
                            dataBuffer.resize(4096);

                            memcpy(headBuffer.data(),&dhead,sizeof(dataHeader));
                            memcpy(sendBuffer.data(),&ret,sizeof(ShowPersonResult));

                            tcpSocket->write(headBuffer);
                            tcpSocket->write(sendBuffer);

                            timer.start(20);

                            long long datalen_temp = ret.datalen;
                            long long  sended_len = 0;
                            while (datalen_temp) {
                               if(datalen_temp>=4096)
                               {
                                   Student *ts = ret.vStudent+sended_len;
                                   memcpy(dataBuffer.data(),ts,4096);
                                   tcpSocket->write(dataBuffer.data());

                                   datalen_temp -= 4096;
                                   sended_len += 4096;
                               }
                               else
                               {
                                  memcpy(dataBuffer.data(),ret.vStudent+sended_len,datalen_temp);
                                  tcpSocket->write(dataBuffer.data()+sended_len,datalen_temp);

                                  datalen_temp = 0;
                               }

                            }

                            ui->ReadEdit->append("以发送`查看所有老师或学生用户`结果");
                        }

图片说明

https://blog.csdn.net/u013352076/article/details/102824169