z42387698 2019-05-10 11:15 采纳率: 0%
浏览 643

TCp没有bytesWritten(qint64)信号怎么办啊?

先发送文件头结构和实际文件大小,然后没有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);

}

  • 写回答

1条回答

  • dearbub 2019-05-10 12:58
    关注

    是否在pro中包含network。然后头文件包含QTcpSocket。
    代码写正确。

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 R语言 拟时序分析降维图如何减少分支
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统