QByteArray fm = block.left(256);block.remove(0,256);
QByteArray fs = block.left(8);block.remove(0,8);
fileName =QString(fm);
m_buff_size = fs.toInt();
m_buffer.append(block);
}
else{
m_buffer.append(block);
if(m_buffer.size()==m_buff_size)
{
QString fPath("D:/TOP/"+fileName);
QFile sentFile(fPath);
sentFile.open(QFile::ReadWrite);
sentFile.write(m_buffer);
block.clear();
m_buffer.clear();
m_buff_size =0;
sentFile.close();
}
}
}
void MainWindow::socketDisconnected()
{
socket->disconnectFromHost();
qDebug() << "close";
}
qt服务端代码
void MainWindow::on_sendButton_clicked()
{
QByteArray buf; QByteArray file_Name,file_Size;
/* 无路径文件名 */
fileName = ui->text_url->text();
QString sfName = fileName.right(fileName.size() - fileName.lastIndexOf('/') - 1);
QFile file(ui->text_url->text());
qDebug() << sfName << file.size();
bool b = file.open(QIODevice::ReadOnly);
QByteArray ba = file.readAll();
int file_size =ba.size();
qDebug() <<ba.size() ;
file_Name.append(sfName);
file_Size.setNum(file_size);
file_Name.resize(256);
file_Size.resize(8);
buf.append(file_Name);
buf.append(file_Size);
buf.append(ba);
qint64 wr = socket->write(buf);
qDebug() <<ba.size() <<"test sleep";
bool flush = socket->flush();
if(wr != -1 && flush == 1)
{
if( wr == 0)
QMessageBox::warning(this,"warning",QString("socket write return 0"));
QMessageBox::warning(this,"warning",QString("Send success%1").arg(wr));
}
}