后面附带实例的下载地址
一、将文件看做是由:文件头+文件内容组成,其中文件头包含文件的一些信息:文件名称、文件大小等。
二、文件头单独发送,文件内容切块发送。
三、每次发送信息格式:发送内容大小、发送内容类型(文件头或是文件块内容)、文件块内容。
四、效果展示:
五、主要代码块:
发送端:
void zzcClient::sendHeader()
{
QString fName = QDir(mFile->fileName()).dirName();
QJsonObject obj( QJsonObject::fromVariantMap({
{"name", fName},
{"size", mFileSize}
}));
QByteArray headerData( QJsonDocument(obj).toJson() );
writePacket(headerData.size(), PacketType::Header, headerData);
}
void zzcClient::sendData()
{
if (!mBytesRemaining)
retu