先发送文件头结构和实际文件大小,然后没有bytesWritten(qint64)信号,应该怎么办啊?
发送代码如下:
```void Widget::startTransfer()
{
localFile = new QFile(fileName);
if (!localFile->open(QFile::ReadOnly)) {
qDebug() << "client: open file error!";
return;
}
// 获取文件大小
totalBytes = localFile->size();
QDataStream sendOut(&outBlock, QIODevice::WriteOnly);
sendOut.setVersion(QDataStream::Qt_4_0);
QString currentFileName = fileName.right(fileName.size() - fileName.lastIndexOf('/')-1);
// 保留总大小信息空间、文件名大小信息空间,然后输入文件名
sendOut << qint64(0) << qint64(0) << currentFileName;
// 这里的总大小是总大小信息、文件名大小信息、文件名和实际文件大小的总和
totalBytes += outBlock.size();
sendOut.device()->seek(0);
// 返回outBolock的开始,用实际的大小信息代替两个qint64(0)空间
sendOut << totalBytes << qint64((outBlock.size() - sizeof(qint64)*2));
// 发送完文件头结构后剩余数据的大小
bytesToWrite = totalBytes - tcpServerConnection->write(outBlock);
ui->severStatusLabel->setText(tr("已连接"));
outBlock.resize(0);
}