找回密码
 立即注册
收起左侧

套接字发送的文件头发送时实际大小怎么算?

1
回复
6170
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2014-1-4 09:47:30 显示全部楼层 |阅读模式
5Qter豆
void Client::startTransfer() //发送信息{    localFile = new QFile(fileName);    if(! localFile->open(QFile::ReadOnly))    {        qDebug() << "clientpen 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);    sendOut << totalBytes << qint64((outBlock.size() - sizeof(qint64)*2)); //添加大小信息    bytesToWrite = totalBytes - tcpClient->write(outBlock); //文件内容的大小////////////////这里的outblock具体内容是什么,多大,为什么我运行时下面这句显示为空,,,,,,(后面传输时感觉都不到64k,它不等于sendout吗????????)
    qDebug() << tr("outBlockfirst:") << outBlock;
    ui->clientStatusLable->setText(tr("已连接"));    outBlock.resize(0); //清零

}

最佳答案

查看完整内容

totalBytes是总的大小,你说的那个实际大写是指文件大小吗,它应该是localFile->size()。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2014-1-4 09:47:31 显示全部楼层
totalBytes是总的大小,你说的那个实际大写是指文件大小吗,它应该是localFile->size()。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了